I think it is due to fragmentation in old gen, due to which survivor area cannot be moved to old gen. 300MB data size of memtable looks high for 3G heap. I learned that in memory overhead of memtable can be as high as 10x of memtable data size in memory. So either increase the heap or reduce the memtable thresholds further so that old gen gets freed up faster. With 16CFs, I would do both i.e. increase the heap to say 4GB and reduce memtable thresholds further.
-Naren On Wed, Mar 23, 2011 at 8:18 AM, ruslan usifov <ruslan.usi...@gmail.com>wrote: > Hello > > Sometimes i seen in gc log follow message: > > 2011-03-23T14:40:56.049+0300: 14897.104: [GC 14897.104: [ParNew (promotion > failed) > Desired survivor size 41943040 bytes, new threshold 2 (max 2) > - age 1: 5573024 bytes, 5573024 total > - age 2: 5064608 bytes, 10637632 total > : 672577K->670749K(737280K), 0.1837950 secs]14897.288: [CMS: > 1602487K->779310K(2326528K), 4.7525580 secs] 2270940K->779310K(3063808K), [ > CMS Perm : 20073K->19913K(33420K)], 4.9365810 secs] [Times: user=5.06 > sys=0.00, real=4.93 secs] > Total time for which application threads were stopped: 4.9378750 seconds > > > How can i minimize they frequency, or disable? > > May current workload is a many small objects (about 200 bytes long), and > summary of my memtables about 300 MB (16 CF). My heap is 3G, >