[ 
https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13161451#comment-13161451
 ] 

MaHaiyang edited comment on CASSANDRA-3537 at 12/2/11 6:52 AM:
---------------------------------------------------------------

Heap memory can not be GC again in my lasted test , although I have set jamm 
correctly . Jmap the memory ,find the same thing  ,too many Message objects and 
ralated objects  in the memory ! 
I have empty all memtables ,in normal condition , heap memory used not more 
than 0.5G ,but now more than 2.8G . I think only memory leak will result this .

{code:xml} 
Object Histogram:

num       #instances    #bytes  Class description
--------------------------------------------------------------------------
1:              9101138 927302160       byte[]
2:              9998059 479906832       java.nio.HeapByteBuffer
3:              875398  221844128       long[]
4:              4302698 137686336       org.apache.cassandra.db.Column
5:              869859  137476712       java.lang.Object[]
6:              1794458 101193096       int[]
7:              1515578 60623120        java.math.BigInteger
8:              834628  46739168        
org.cliffc.high_scale_lib.ConcurrentAutoTable$CAT
9:              1644330 39463920        
java.util.concurrent.ConcurrentSkipListMap$Node
10:             1461787 35082888        org.apache.cassandra.db.DecoratedKey
11:             513576  24651648        java.util.Hashtable
12:             741037  24559960        char[]
13:             1512396 24198336        org.apache.cassandra.dht.BigIntegerToken
14:             741097  23715104        java.lang.String
15:             732184  17572416        
org.apache.cassandra.io.sstable.IndexSummary$KeyPosition
16:             513594  15637344        java.util.Hashtable$Entry[]
17:             278209  15579704        
org.cliffc.high_scale_lib.NonBlockingHashMap$CHM
18:             462641  14804512        java.net.Inet4Address
19:             578801  13891224        
java.util.concurrent.ConcurrentSkipListMap$Index
20:             834627  13354032        org.cliffc.high_scale_lib.Counter
21:             556415  13353960        org.apache.cassandra.db.ReadResponse
22:             267483  12839184        
org.apache.cassandra.service.ReadCallback
23:             513250  12318000        org.apache.cassandra.net.Message
24:             513248  12317952        org.apache.cassandra.net.Header
25:             501596  12038304        
org.apache.cassandra.db.AbstractColumnContainer$DeletionInfo
26:             244644  11742912        
org.apache.cassandra.db.ThreadSafeSortedColumns
27:             365024  11680768        
java.util.concurrent.ConcurrentSkipListMap$HeadIndex
28:             464800  11155200        java.util.Collections$SynchronizedSet
29:             278209  11128360        
org.cliffc.high_scale_lib.NonBlockingHashMap
30:             342741  10967712        
org.apache.cassandra.utils.ExpiringMap$CacheableObject
31:             199478  9574944 org.apache.cassandra.db.SliceFromReadCommand
32:             278218  8902976 
java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
33:             348179  8356296 org.apache.cassandra.db.ColumnFamily
34:             342741  8225784 org.apache.cassandra.net.CallbackInfo
35:             255241  8167712 org.apache.cassandra.db.ArrayBackedSortedColumns
36:             334724  8033376 java.util.ArrayList
37:             499963  7999408 java.util.concurrent.atomic.AtomicReference
38:             319779  7674696 org.apache.cassandra.db.Row
39:             187484  7499360 org.apache.cassandra.db.Memtable$6
40:             464794  7436704 java.util.Hashtable$KeySet
41:             187496  5999872 java.util.TreeMap$KeyIterator
42:             372748  5963968 java.util.concurrent.atomic.AtomicInteger
43:             236877  5685048 org.apache.cassandra.db.filter.QueryPath
44:             236733  5681592 org.apache.cassandra.service.RowDigestResolver
45:             300385  4806160 org.apache.cassandra.utils.SimpleCondition
46:             30726   4245920 * ConstMethodKlass
47:             30726   3696240 * MethodKlass
48:             151726  3641424 org.apache.cassandra.db.SuperColumn
49:             3134    3350536 * ConstantPoolKlass
50:             95622   3059904 
java.util.concurrent.locks.ReentrantLock$NonfairSync
51:             45910   2497952 * SymbolKlass
52:             3134    2276040 * InstanceKlassKlass
53:             94544   2269056 java.util.concurrent.LinkedBlockingQueue$Node
54:             93130   2235120 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
55:             133398  2134368 
java.util.concurrent.ConcurrentSkipListMap$Values
56:             2813    2099368 * ConstantPoolCacheKlass
57:             37698   1809504 java.util.TreeMap
58:             37783   1511320 java.util.TreeMap$Entry
59:             93602   1497632 java.util.concurrent.locks.ReentrantLock
60:             30768   1476864 java.util.concurrent.LinkedBlockingQueue
61:             85156   1362496 
java.util.concurrent.ConcurrentSkipListMap$EntrySet
62:             41451   1326432 org.apache.cassandra.service.RowRepairResolver
63:             41141   1316512 java.util.concurrent.ConcurrentHashMap$HashEntry
64:             32885   1315400 
org.apache.cassandra.service.WriteResponseHandler
65:             3110    1277672 * MethodDataKlass
66:             39780   1272960 
com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap$Node
67:             31556   1262240 org.apache.cassandra.net.AsyncResult
68:             30745   1229800 org.apache.cassandra.db.RangeSliceCommand
69:             37628   1204096 org.apache.cassandra.db.SliceByNamesReadCommand
70:             44528   1068672 
com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap$WeightedValue
71:             31974   1023168 
java.util.concurrent.locks.AbstractQueuedSynchronizer$Node
72:             41435   994440  org.apache.cassandra.service.AsyncRepairCallback
73:             30821   986272  org.apache.cassandra.thrift.SliceRange
74:             30756   984192  java.util.RandomAccessSubList
75:             30745   983840  
org.apache.cassandra.service.RangeSliceResponseResolver
76:             29115   931680  org.apache.cassandra.db.DeletedColumn
77:             21676   867040  org.apache.cassandra.db.ExpiringColumn
78:             35339   848136  java.lang.Long
79:             35204   844896  org.apache.cassandra.utils.Pair
80:             30924   742176  java.util.BitSet
81:             30821   739704  org.apache.cassandra.thrift.SlicePredicate
82:             30787   738888  org.apache.cassandra.dht.Bounds
83:             37673   602768  java.util.TreeSet
84:             37654   602464  java.util.TreeMap$KeySet
85:             31598   505568  java.util.concurrent.atomic.AtomicBoolean
86:             6575    420800  java.nio.DirectByteBufferR
87:             2004    416400  
java.util.concurrent.ConcurrentHashMap$HashEntry[]
88:             3433    357032  java.lang.Class
89:             8976    287232  java.lang.ref.WeakReference
90:             4999    269008  short[]{code} 

                
      was (Author: jonma):
    Heap memory can not be GC again in my lasted test , although I have set 
jamm correctly . Jmap the memory ,find the same thing  ,too many Message 
objects and ralated objects  in the memory ! 

{code:xml} 
Object Histogram:

num       #instances    #bytes  Class description
--------------------------------------------------------------------------
1:              9101138 927302160       byte[]
2:              9998059 479906832       java.nio.HeapByteBuffer
3:              875398  221844128       long[]
4:              4302698 137686336       org.apache.cassandra.db.Column
5:              869859  137476712       java.lang.Object[]
6:              1794458 101193096       int[]
7:              1515578 60623120        java.math.BigInteger
8:              834628  46739168        
org.cliffc.high_scale_lib.ConcurrentAutoTable$CAT
9:              1644330 39463920        
java.util.concurrent.ConcurrentSkipListMap$Node
10:             1461787 35082888        org.apache.cassandra.db.DecoratedKey
11:             513576  24651648        java.util.Hashtable
12:             741037  24559960        char[]
13:             1512396 24198336        org.apache.cassandra.dht.BigIntegerToken
14:             741097  23715104        java.lang.String
15:             732184  17572416        
org.apache.cassandra.io.sstable.IndexSummary$KeyPosition
16:             513594  15637344        java.util.Hashtable$Entry[]
17:             278209  15579704        
org.cliffc.high_scale_lib.NonBlockingHashMap$CHM
18:             462641  14804512        java.net.Inet4Address
19:             578801  13891224        
java.util.concurrent.ConcurrentSkipListMap$Index
20:             834627  13354032        org.cliffc.high_scale_lib.Counter
21:             556415  13353960        org.apache.cassandra.db.ReadResponse
22:             267483  12839184        
org.apache.cassandra.service.ReadCallback
23:             513250  12318000        org.apache.cassandra.net.Message
24:             513248  12317952        org.apache.cassandra.net.Header
25:             501596  12038304        
org.apache.cassandra.db.AbstractColumnContainer$DeletionInfo
26:             244644  11742912        
org.apache.cassandra.db.ThreadSafeSortedColumns
27:             365024  11680768        
java.util.concurrent.ConcurrentSkipListMap$HeadIndex
28:             464800  11155200        java.util.Collections$SynchronizedSet
29:             278209  11128360        
org.cliffc.high_scale_lib.NonBlockingHashMap
30:             342741  10967712        
org.apache.cassandra.utils.ExpiringMap$CacheableObject
31:             199478  9574944 org.apache.cassandra.db.SliceFromReadCommand
32:             278218  8902976 
java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
33:             348179  8356296 org.apache.cassandra.db.ColumnFamily
34:             342741  8225784 org.apache.cassandra.net.CallbackInfo
35:             255241  8167712 org.apache.cassandra.db.ArrayBackedSortedColumns
36:             334724  8033376 java.util.ArrayList
37:             499963  7999408 java.util.concurrent.atomic.AtomicReference
38:             319779  7674696 org.apache.cassandra.db.Row
39:             187484  7499360 org.apache.cassandra.db.Memtable$6
40:             464794  7436704 java.util.Hashtable$KeySet
41:             187496  5999872 java.util.TreeMap$KeyIterator
42:             372748  5963968 java.util.concurrent.atomic.AtomicInteger
43:             236877  5685048 org.apache.cassandra.db.filter.QueryPath
44:             236733  5681592 org.apache.cassandra.service.RowDigestResolver
45:             300385  4806160 org.apache.cassandra.utils.SimpleCondition
46:             30726   4245920 * ConstMethodKlass
47:             30726   3696240 * MethodKlass
48:             151726  3641424 org.apache.cassandra.db.SuperColumn
49:             3134    3350536 * ConstantPoolKlass
50:             95622   3059904 
java.util.concurrent.locks.ReentrantLock$NonfairSync
51:             45910   2497952 * SymbolKlass
52:             3134    2276040 * InstanceKlassKlass
53:             94544   2269056 java.util.concurrent.LinkedBlockingQueue$Node
54:             93130   2235120 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
55:             133398  2134368 
java.util.concurrent.ConcurrentSkipListMap$Values
56:             2813    2099368 * ConstantPoolCacheKlass
57:             37698   1809504 java.util.TreeMap
58:             37783   1511320 java.util.TreeMap$Entry
59:             93602   1497632 java.util.concurrent.locks.ReentrantLock
60:             30768   1476864 java.util.concurrent.LinkedBlockingQueue
61:             85156   1362496 
java.util.concurrent.ConcurrentSkipListMap$EntrySet
62:             41451   1326432 org.apache.cassandra.service.RowRepairResolver
63:             41141   1316512 java.util.concurrent.ConcurrentHashMap$HashEntry
64:             32885   1315400 
org.apache.cassandra.service.WriteResponseHandler
65:             3110    1277672 * MethodDataKlass
66:             39780   1272960 
com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap$Node
67:             31556   1262240 org.apache.cassandra.net.AsyncResult
68:             30745   1229800 org.apache.cassandra.db.RangeSliceCommand
69:             37628   1204096 org.apache.cassandra.db.SliceByNamesReadCommand
70:             44528   1068672 
com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap$WeightedValue
71:             31974   1023168 
java.util.concurrent.locks.AbstractQueuedSynchronizer$Node
72:             41435   994440  org.apache.cassandra.service.AsyncRepairCallback
73:             30821   986272  org.apache.cassandra.thrift.SliceRange
74:             30756   984192  java.util.RandomAccessSubList
75:             30745   983840  
org.apache.cassandra.service.RangeSliceResponseResolver
76:             29115   931680  org.apache.cassandra.db.DeletedColumn
77:             21676   867040  org.apache.cassandra.db.ExpiringColumn
78:             35339   848136  java.lang.Long
79:             35204   844896  org.apache.cassandra.utils.Pair
80:             30924   742176  java.util.BitSet
81:             30821   739704  org.apache.cassandra.thrift.SlicePredicate
82:             30787   738888  org.apache.cassandra.dht.Bounds
83:             37673   602768  java.util.TreeSet
84:             37654   602464  java.util.TreeMap$KeySet
85:             31598   505568  java.util.concurrent.atomic.AtomicBoolean
86:             6575    420800  java.nio.DirectByteBufferR
87:             2004    416400  
java.util.concurrent.ConcurrentHashMap$HashEntry[]
88:             3433    357032  java.lang.Class
89:             8976    287232  java.lang.ref.WeakReference
90:             4999    269008  short[]{code} 

                  
> JVM heap is full and  GC take no effect ,so many NonBlockingHashMap objects 
> in heap 
> ------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-3537
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3537
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 1.0.0
>         Environment: 当前堆大小: 
> 5,815,955 Kb
> 堆大小的最大值: 
> 6,045,696 Kb
> 分配的内存: 
> 6,045,696 Kb
> 暂挂结束操作: 
> 0 个对象
> 垃圾收集器: 
> Name = 'ParNew', Collections = 3,294, Total time spent = 2 minutes
> 垃圾收集器: 
> Name = 'ConcurrentMarkSweep', Collections = 5,909, Total time spent = 2 hours 
> 17 minutes
>  
> 操作系统: 
> Linux 2.6.32.12-0.7-default
> 体系结构: 
> amd64
> 处理器的数目: 
> 16
> 分配的虚拟内存: 
> 42,748,416 Kb
> 物理内存总量: 
> 24,568,836 Kb
> 可用物理内存: 
>  7,136,380 Kb
> 交换空间总量: 
>  2,104,472 Kb
> 可用交换空间: 
>  1,970,800 Kb
>  
> VM 参数: 
> -ea -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms6G -Xmx6G 
> -Xmn2400M -XX:+HeapDumpOnOutOfMemoryError -Xss128k -XX:+UseParNewGC 
> -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8 
> -XX:MaxTenuringThreshold=1 -XX:CMSInitiatingOccupancyFraction=75 
> -XX:+UseCMSInitiatingOccupancyOnly -Djava.net.preferIPv4Stack=true 
> -Dcom.sun.management.jmxremote.port=9000 
> -Dcom.sun.management.jmxremote.ssl=false 
> -Dcom.sun.management.jmxremote.authenticate=false 
> -Dpasswd.properties=/opt/obs/cassandra/conf/passwd.properties 
> -Dpasswd.mode=MD5 -Dlog4j.configuration=log4j-server.properties 
> -Dlog4j.defaultInitOverride=true 
> 类路径: 
> /opt/obs/cassandra/conf:/opt/obs/cassandra/build/classes/main:/opt/obs/cassandra/build/classes/thrift:/opt/obs/cassandra/lib/antlr-3.2.jar:/opt/obs/cassandra/lib/apache-cassandra-1.0.0.jar:/opt/obs/cassandra/lib/apache-cassandra-clientutil-1.0.0.jar:/opt/obs/cassandra/lib/apache-cassandra-thrift-1.0.0.jar:/opt/obs/cassandra/lib/avro-1.4.0-fixes.jar:/opt/obs/cassandra/lib/avro-1.4.0-sources-fixes.jar:/opt/obs/cassandra/lib/cassandra_simple_authentication.jar:/opt/obs/cassandra/lib/commons-cli-1.1.jar:/opt/obs/cassandra/lib/commons-codec-1.2.jar:/opt/obs/cassandra/lib/commons-lang-2.4.jar:/opt/obs/cassandra/lib/compress-lzf-0.8.4.jar:/opt/obs/cassandra/lib/concurrentlinkedhashmap-lru-1.2.jar:/opt/obs/cassandra/lib/guava-r08.jar:/opt/obs/cassandra/lib/high-scale-lib-1.1.2.jar:/opt/obs/cassandra/lib/jackson-core-asl-1.4.0.jar:/opt/obs/cassandra/lib/jackson-mapper-asl-1.4.0.jar:/opt/obs/cassandra/lib/jamm-0.2.5.jar:/opt/obs/cassandra/lib/jline-0.9.94.jar:/opt/obs/cassandra/lib/json-simple-1.1.jar:/opt/obs/cassandra/lib/libthrift-0.6.jar:/opt/obs/cassandra/lib/log4j-1.2.16.jar:/opt/obs/cassandra/lib/servlet-api-2.5-20081211.jar:/opt/obs/cassandra/lib/slf4j-api-1.6.1.jar:/opt/obs/cassandra/lib/slf4j-log4j12-1.6.1.jar:/opt/obs/cassandra/lib/snakeyaml-1.6.jar:/opt/obs/cassandra/lib/snappy-java-1.0.3.jar
>            Reporter: MaHaiyang
>
> I have 4 cassandra nodes ,and I put about 30G data to db for every nodes . 
> It's just 4 days before I start the cluster ,but now every 4 nodes have the 
> same problem ,JVM heap is full  ,and  GC take no effect ,There must be some 
> memory leak . Jmap the memory as follow:
> Object Histogram:
> num     #instances    #bytes  Class description
> --------------------------------------------------------------------------
> 1:            15793606        758093088       java.nio.HeapByteBuffer
> 2:            2153811 320138208       java.lang.Object[]
> 3:            6163192 197222144       org.apache.cassandra.db.Column
> 4:            2543836 175890256       int[]
> 5:            2168816 155397192       long[]
> 6:            2078123 116374888       
> org.cliffc.high_scale_lib.ConcurrentAutoTable$CAT
> 7:            1847111 73884440        java.math.BigInteger
> 8:            1234243 59243664        java.util.Hashtable
> 9:            1770829 58233000        char[]
> 10:           1770627 56660064        java.lang.String
> 11:           1665886 39981264        org.apache.cassandra.db.DecoratedKey
> 12:           692706  38791536        
> org.cliffc.high_scale_lib.NonBlockingHashMap$CHM
> 13:           1234274 37172088        java.util.Hashtable$Entry[]
> 14:           1133541 36273312        java.net.Inet4Address
> 15:           738528  35449344        
> org.apache.cassandra.service.ReadCallback
> 16:           2078118 33249888        org.cliffc.high_scale_lib.Counter
> 17:           1373886 32973264        org.apache.cassandra.db.ReadResponse
> 18:           1234023 29616552        org.apache.cassandra.net.Message
> 19:           1234019 29616456        org.apache.cassandra.net.Header
> 20:           1846185 29538960        org.apache.cassandra.dht.BigIntegerToken
> 21:           891378  28524096        
> org.apache.cassandra.utils.ExpiringMap$CacheableObject
> 22:           692706  27708240        
> org.cliffc.high_scale_lib.NonBlockingHashMap
> 23:           1148252 27558048        java.util.Collections$SynchronizedSet
> 24:           541977  26014896        
> org.apache.cassandra.db.SliceFromReadCommand
> 25:           998001  23952024        
> java.util.concurrent.ConcurrentSkipListMap$Node
> 26:           928792  22291008        java.util.ArrayList
> 27:           692715  22166880        
> java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
> 28:           891378  21393072        org.apache.cassandra.net.CallbackInfo
> 29:           1148247 18371952        java.util.Hashtable$KeySet
> 30:           731859  17564616        org.apache.cassandra.db.Row
> 31:           529991  16959712        
> org.apache.cassandra.db.ArrayBackedSortedColumns
> 32:           691425  16594200        
> org.apache.cassandra.db.AbstractColumnContainer$DeletionInfo
> 33:           648580  15565920        org.apache.cassandra.db.filter.QueryPath
> 34:           648338  15560112        
> org.apache.cassandra.service.RowDigestResolver
> 35:           971376  15542016        
> java.util.concurrent.atomic.AtomicInteger
> 36:           837418  13398688        
> org.apache.cassandra.utils.SimpleCondition
> 37:           535614  12854736        org.apache.cassandra.db.ColumnFamily
> 38:           725634  11610144        
> java.util.concurrent.atomic.AtomicReference
> 39:           195117  9365616 org.apache.cassandra.db.ThreadSafeSortedColumns
> 40:           281921  9021472 
> java.util.concurrent.ConcurrentSkipListMap$HeadIndex
> 41:           277679  8885728 
> java.util.concurrent.locks.ReentrantLock$NonfairSync
> 42:           314424  7546176 java.util.concurrent.ConcurrentSkipListMap$Index
> 43:           275186  6604464 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
> 44:           270280  6486720 java.util.concurrent.LinkedBlockingQueue$Node
> 45:           219553  5269272 
> org.apache.cassandra.io.sstable.IndexSummary$KeyPosition
> 46:           106436  5108928 java.util.TreeMap
> 47:           122185  4887400 org.apache.cassandra.db.ExpiringColumn
> 48:           189968  4559232 org.apache.cassandra.db.SuperColumn
> 49:           275659  4410544 java.util.concurrent.locks.ReentrantLock
> 50:           90213   4330224 java.util.concurrent.LinkedBlockingQueue
> 51:           107026  4281040 java.util.TreeMap$Entry
> 52:           30501   4222056 * ConstMethodKlass

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to