You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "MaHaiyang (Created) (JIRA)" <ji...@apache.org> on 2011/11/29 08:25:40 UTC

[jira] [Created] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

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

       

[jira] [Updated] (CASSANDRA-3537) ExpiringMap timer is not exception-proof

Posted by "Jonathan Ellis (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-3537:
--------------------------------------

             Priority: Minor  (was: Major)
    Affects Version/s:     (was: 1.0.0)
        Fix Version/s: 1.0.6
              Summary: ExpiringMap timer is not exception-proof  (was: JVM heap is full and  GC take no effect ,so many NonBlockingHashMap objects in heap )
    
> ExpiringMap timer is not exception-proof
> ----------------------------------------
>
>                 Key: CASSANDRA-3537
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3537
>             Project: Cassandra
>          Issue Type: Bug
>         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
>            Priority: Minor
>             Fix For: 1.0.6
>
>
> 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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "MaHaiyang (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13159801#comment-13159801 ] 

MaHaiyang commented on CASSANDRA-3537:
--------------------------------------

In system.log ,I find this : 
<164> 4 2011-11-29T15:29:57.890714+00:00   WARN [MutationStage:10] 2011-11-29 15:29:57,890 Memtable.java (line 142) MemoryMeter uninitialized (jamm not specified as java agent); assuming liveRatio of 10.0.  Usually this means cassandra-env.sh disabled jamm because you are using a buggy JRE; upgrade to the Sun JRE instead .
 
I have no idea this will affect the test result ,or not . But all of my 4 cassandra nodes have the same log . I checked my system physical memory size : node A: 16 G ,ulimit -v :14G   node B:  32G , ulimit 28G ,  node C :48G ,ulimit -v 42G  node D:24G ulimit -v 21G , 

The ulimit -v setting will result the problem ?

ps : There is another java application run on my machine  . It result the log WARN .



                
> 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

       

[jira] [Updated] (CASSANDRA-3537) ExpiringMap timer is not exception-proof

Posted by "Jonathan Ellis (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-3537:
--------------------------------------

    Attachment: 3537-v4.txt

That makes sense.  v4 attached with this approach.
                
> ExpiringMap timer is not exception-proof
> ----------------------------------------
>
>                 Key: CASSANDRA-3537
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3537
>             Project: Cassandra
>          Issue Type: Bug
>         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
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 1.0.9
>
>         Attachments: 3537-v2.txt, 3537-v4.txt, 3537.txt
>
>
> 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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "MaHaiyang (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13159826#comment-13159826 ] 

MaHaiyang commented on CASSANDRA-3537:
--------------------------------------

In fact ,my jvm is Sun JVM, Java HotSpot(TM) 64-Bit Server VM  19.1-b02 .
                
> 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

       

[jira] [Issue Comment Edited] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "MaHaiyang (Issue Comment Edited) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13159801#comment-13159801 ] 

MaHaiyang edited comment on CASSANDRA-3537 at 11/30/11 3:57 AM:
----------------------------------------------------------------

In system.log ,I find this : 
<164> 4 2011-11-29T15:29:57.890714+00:00   WARN [MutationStage:10] 2011-11-29 15:29:57,890 Memtable.java (line 142) MemoryMeter uninitialized (jamm not specified as java agent); assuming liveRatio of 10.0.  Usually this means cassandra-env.sh disabled jamm because you are using a buggy JRE; upgrade to the Sun JRE instead .
 
I have no idea this will affect the test result ,or not . But all of my 4 cassandra nodes have the same log . I checked my system physical memory size : node A: 16 G ,ulimit -v :14G   node B:  32G , ulimit 28G ,  node C :48G ,ulimit -v 42G  node D:24G ulimit -v 21G , 

The ulimit -v setting will result the problem ?

ps : There is another java application run on my machine  . It result the log WARN .
 I haven't use Stress as workload ,I use a workload like YCSB based on Hector .
 There are 8 user CF in the system.





                
      was (Author: jonma):
    In system.log ,I find this : 
<164> 4 2011-11-29T15:29:57.890714+00:00   WARN [MutationStage:10] 2011-11-29 15:29:57,890 Memtable.java (line 142) MemoryMeter uninitialized (jamm not specified as java agent); assuming liveRatio of 10.0.  Usually this means cassandra-env.sh disabled jamm because you are using a buggy JRE; upgrade to the Sun JRE instead .
 
I have no idea this will affect the test result ,or not . But all of my 4 cassandra nodes have the same log . I checked my system physical memory size : node A: 16 G ,ulimit -v :14G   node B:  32G , ulimit 28G ,  node C :48G ,ulimit -v 42G  node D:24G ulimit -v 21G , 

The ulimit -v setting will result the problem ?

ps : There is another java application run on my machine  . It result the log WARN .



                  
> 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

       

[jira] [Updated] (CASSANDRA-3537) ExpiringMap timer is not exception-proof

Posted by "Sylvain Lebresne (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sylvain Lebresne updated CASSANDRA-3537:
----------------------------------------

    Attachment: 3537.txt

Simple patch attached to make expiring map more exception proof.
                
> ExpiringMap timer is not exception-proof
> ----------------------------------------
>
>                 Key: CASSANDRA-3537
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3537
>             Project: Cassandra
>          Issue Type: Bug
>         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
>            Priority: Minor
>             Fix For: 1.0.8
>
>         Attachments: 3537.txt
>
>
> 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

       

[jira] [Commented] (CASSANDRA-3537) ExpiringMap timer is not exception-proof

Posted by "Sylvain Lebresne (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13214675#comment-13214675 ] 

Sylvain Lebresne commented on CASSANDRA-3537:
---------------------------------------------

No I meant that we would wrap the initial Runnable into another Runnable that catches every exception of the first one and log them. In other words, as far as STPE is concerned, our runnable would never ever fail (and thus would never be suppressed).
                
> ExpiringMap timer is not exception-proof
> ----------------------------------------
>
>                 Key: CASSANDRA-3537
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3537
>             Project: Cassandra
>          Issue Type: Bug
>         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
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 1.0.9
>
>         Attachments: 3537-v2.txt, 3537.txt
>
>
> 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

       

[jira] [Resolved] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "Jonathan Ellis (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis resolved CASSANDRA-3537.
---------------------------------------

    Resolution: Not A Problem

Reduce the memtable_total_space_in_mb setting.
                
> 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

       

[jira] [Commented] (CASSANDRA-3537) ExpiringMap timer is not exception-proof

Posted by "Sylvain Lebresne (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13215537#comment-13215537 ] 

Sylvain Lebresne commented on CASSANDRA-3537:
---------------------------------------------

+1 (nit: the overriden schedule method misses their @Override)
                
> ExpiringMap timer is not exception-proof
> ----------------------------------------
>
>                 Key: CASSANDRA-3537
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3537
>             Project: Cassandra
>          Issue Type: Bug
>         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
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 1.1.0
>
>         Attachments: 3537-v2.txt, 3537-v4.txt, 3537.txt
>
>
> 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

       

[jira] [Commented] (CASSANDRA-3537) ExpiringMap timer is not exception-proof

Posted by "Jonathan Ellis (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13214667#comment-13214667 ] 

Jonathan Ellis commented on CASSANDRA-3537:
-------------------------------------------

bq. Another would be to override all the schedule() method to wrap the runnable 

That's going to require reflection as well since SFT is private. :)
                
> ExpiringMap timer is not exception-proof
> ----------------------------------------
>
>                 Key: CASSANDRA-3537
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3537
>             Project: Cassandra
>          Issue Type: Bug
>         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
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 1.0.9
>
>         Attachments: 3537-v2.txt, 3537.txt
>
>
> 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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "MaHaiyang (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13163533#comment-13163533 ] 

MaHaiyang commented on CASSANDRA-3537:
--------------------------------------

{quote}
Jonathan Ellis added a comment - 05/Dec/11 14:10 
That's true, but unless you're seeing exceptions in the log it should be a non-issue.
{quote}
2011-12-06 06:50:23,383 AbstractCassandraDaemon.java (line 133) Fatal exception in thread Thread[EXPIRING-MAP-TIMER-1,5,main]
java.lang.AssertionError: /xxx.xxx.xx.xx
      at org.apache.cassandra.service.StorageProxy.scheduleLocalHint(StorageProxy.java:337)
      at org.apache.cassandra.net.MessagingService.scheduleMutationHint(MessagingService.java:199)
      at org.apache.cassandra.net.MessagingService.access$500(MessagingService.java:62)
      at org.apache.cassandra.net.MessagingService$2.apply(MessagingService.java:173)
      at org.apache.cassandra.net.MessagingService$2.apply(MessagingService.java:150)
      at org.apache.cassandra.utils.ExpiringMap$1.run(ExpiringMap.java:89)
      at java.util.TimerThread.mainLoop(Timer.java:512)
      at java.util.TimerThread.run(Timer.java:462)
                
> 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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "MaHaiyang (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13161363#comment-13161363 ] 

MaHaiyang commented on CASSANDRA-3537:
--------------------------------------

After  I set jamm correctly , I do a new test , and haven't find the memory problem in 20 hours  .But I could't confirm it's  "jamm not specified as java agent"  result the heap problem . I analysised the dump memory info of the node which had the heap problem , they nearly have the same thing :  too many Message objects and ralated objects like below,although I have stoped reading and writing data for a few minutes and  empty all memtables  .
#instances	#bytes	Class description
---------------------------------------------
900654	21615696	org.apache.cassandra.net.Message
900653	21615672	org.apache.cassandra.net.Header
341351	16384848	org.apache.cassandra.service.ReadCallback
338502	13540080	org.apache.cassandra.db.RangeSliceCommand
338500	10832000	org.apache.cassandra.thrift.SliceRange
338502	8124048	org.apache.cassandra.thrift.SlicePredicate
343328	5493248	org.apache.cassandra.utils.SimpleCondition


Is there someone can tell me ,whether there are some relationship between "jamm not specified as java agent" and so many 
objects like above  ?
 
                
> 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

       

[jira] [Commented] (CASSANDRA-3537) ExpiringMap timer is not exception-proof

Posted by "Jonathan Ellis (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13213893#comment-13213893 ] 

Jonathan Ellis commented on CASSANDRA-3537:
-------------------------------------------

bq. I'm not sure I understand why LoggingScheduledFuture is useful though

The problem I'm trying to solve is, the core of STPE.ScheduledFutureTask:

{code}
.       private void runPeriodic() {
            boolean ok = ScheduledFutureTask.super.runAndReset();
            boolean down = isShutdown();
            // Reschedule if not cancelled and not shutdown or policy allows
            if (ok && (!down ||
                       (getContinueExistingPeriodicTasksAfterShutdownPolicy() &&
                        !isStopped()))) {
                long p = period;
                if (p > 0)
                    time += p;
                else
                    time = triggerTime(-p);
                ScheduledThreadPoolExecutor.super.getQueue().add(this);
            }
            // This might have been the final executed delayed
            // task.  Wake up threads to check.
            else if (down)
                interruptIdleWorkers();
        }
{code}

In other words, "If any execution of the task encounters an exception, subsequent executions are suppressed."

That said, you're right that a second wrapper doesn't solve this problem.  Not sure what to do here.  Use reflection to reach into the SFT in afterExecute, and re-schedule the original Runnable?

bq. if we use the TPE.execute() method (which we do), then the runnable is not wrapped by a FutureTask and thrown exception will be thrown in TPE.runTask

That's fine though, since TPE.execute is inherently non-repeating.
                
> ExpiringMap timer is not exception-proof
> ----------------------------------------
>
>                 Key: CASSANDRA-3537
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3537
>             Project: Cassandra
>          Issue Type: Bug
>         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
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 1.0.9
>
>         Attachments: 3537-v2.txt, 3537.txt
>
>
> 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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "MaHaiyang (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13159841#comment-13159841 ] 

MaHaiyang commented on CASSANDRA-3537:
--------------------------------------


If I terminate the another java application ,it will not have the log WARN .
I think I should terminate the another java application first , then do a new test again.  Thanks.
========================================
ps : There is another java application run on my machine . It result the log WARN .
I haven't use Stress as workload ,I use a workload like YCSB based on Hector .
.......
                
> 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

       

[jira] [Updated] (CASSANDRA-3537) ExpiringMap timer is not exception-proof

Posted by "Jonathan Ellis (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-3537:
--------------------------------------

    Fix Version/s:     (was: 1.0.9)
                   1.1.0

(And yes, I think this should target 1.1 instead of 1.0.9 since messing with executors scares me a bit.)
                
> ExpiringMap timer is not exception-proof
> ----------------------------------------
>
>                 Key: CASSANDRA-3537
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3537
>             Project: Cassandra
>          Issue Type: Bug
>         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
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 1.1.0
>
>         Attachments: 3537-v2.txt, 3537-v4.txt, 3537.txt
>
>
> 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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "Jonathan Ellis (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13162617#comment-13162617 ] 

Jonathan Ellis commented on CASSANDRA-3537:
-------------------------------------------

That is where callbacks for ongoing requests are stored.
                
> 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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "Jonathan Ellis (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13163589#comment-13163589 ] 

Jonathan Ellis commented on CASSANDRA-3537:
-------------------------------------------

That's CASSANDRA-3440, you should upgrade.
                
> 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

       

[jira] [Commented] (CASSANDRA-3537) ExpiringMap timer is not exception-proof

Posted by "Jonathan Ellis (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13213670#comment-13213670 ] 

Jonathan Ellis commented on CASSANDRA-3537:
-------------------------------------------

catching Throwable or Error is generally Bad because most Errors are not recoverable. OutOfMemoryError is the most common. We have a global exception hook set up to shut down the process for those.
                
> ExpiringMap timer is not exception-proof
> ----------------------------------------
>
>                 Key: CASSANDRA-3537
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3537
>             Project: Cassandra
>          Issue Type: Bug
>         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
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 1.0.9
>
>         Attachments: 3537.txt
>
>
> 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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "Jonathan Ellis (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13159747#comment-13159747 ] 

Jonathan Ellis commented on CASSANDRA-3537:
-------------------------------------------

what liveRatio is being logged for your workload?

can you reproduce using a synthetic Stress workload?  (stress tool available w/ source distribution)
                
> 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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "Jonathan Ellis (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13159821#comment-13159821 ] 

Jonathan Ellis commented on CASSANDRA-3537:
-------------------------------------------

You should upgrade to the Sun/Oracle JVM as it suggests.
                
> 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

       

[jira] [Issue Comment Edited] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "MaHaiyang (Issue Comment Edited) (JIRA)" <ji...@apache.org>.
    [ 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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "MaHaiyang (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13161451#comment-13161451 ] 

MaHaiyang commented on CASSANDRA-3537:
--------------------------------------

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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "Jonathan Ellis (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13159835#comment-13159835 ] 

Jonathan Ellis commented on CASSANDRA-3537:
-------------------------------------------

Then you'll have to come up with an alternative explanation for why jamm isn't being used.
                
> 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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "MaHaiyang (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13162569#comment-13162569 ] 

MaHaiyang commented on CASSANDRA-3537:
--------------------------------------

I spend a whole week analyse this problem , Now I find this problem is only caused by {color:red} 
the cache in ExpiringMap {color} 
 which is a NonBlockingHashMap . Why this cache can make the heap memory full and never be GC ?
                
> 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

       

[jira] [Commented] (CASSANDRA-3537) ExpiringMap timer is not exception-proof

Posted by "Sylvain Lebresne (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13214515#comment-13214515 ] 

Sylvain Lebresne commented on CASSANDRA-3537:
---------------------------------------------

bq. In other words, "If any execution of the task encounters an exception, subsequent executions are suppressed."

I see.

bq. Use reflection to reach into the SFT in afterExecute, and re-schedule the original Runnable?

That would be one option I suppose. Another would be to override all the schedule() method to wrap the runnable into a wrapper that would resubmit the task on exception (we would avoid reflection, not sure it's simpler though).

bq. That's fine though, since TPE.execute is inherently non-repeating.

True.
                
> ExpiringMap timer is not exception-proof
> ----------------------------------------
>
>                 Key: CASSANDRA-3537
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3537
>             Project: Cassandra
>          Issue Type: Bug
>         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
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 1.0.9
>
>         Attachments: 3537-v2.txt, 3537.txt
>
>
> 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

       

[jira] [Commented] (CASSANDRA-3537) ExpiringMap timer is not exception-proof

Posted by "Sylvain Lebresne (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13213798#comment-13213798 ] 

Sylvain Lebresne commented on CASSANDRA-3537:
---------------------------------------------

I like the idea of using DSTPE. I'm not sure I understand why LoggingScheduledFuture is useful though. STPE already wraps runnables into FutureTask, which catches Throwable and turn them into ExecutionException. So DSTPE.afterExecute() should already get everything.

However, I think we may need the kind of wrapper LoggingScheduledFuture implements for DPTE, since if we use the TPE.execute() method (which we do), then the runnable is not wrapped by a FutureTask and thrown exception will be thrown in TPE.runTask. And since TPE.runTask only catches RuntimeException...

As a side note, I notice your patch is against 1.1 which I'm good with but we may want to change the fix version then.
                
> ExpiringMap timer is not exception-proof
> ----------------------------------------
>
>                 Key: CASSANDRA-3537
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3537
>             Project: Cassandra
>          Issue Type: Bug
>         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
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 1.0.9
>
>         Attachments: 3537-v2.txt, 3537.txt
>
>
> 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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "MaHaiyang (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13164112#comment-13164112 ] 

MaHaiyang commented on CASSANDRA-3537:
--------------------------------------

Thanks very much . Helps a lot .
                
> 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

       

[jira] [Commented] (CASSANDRA-3537) ExpiringMap timer is not exception-proof

Posted by "MaHaiyang (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13213530#comment-13213530 ] 

MaHaiyang commented on CASSANDRA-3537:
--------------------------------------


{quote}
Simple patch attached to make expiring map more exception proof.
{quote}
Please catch Throwable  , not just only catch Exception. It may have Errors in try-catch block.
                
> ExpiringMap timer is not exception-proof
> ----------------------------------------
>
>                 Key: CASSANDRA-3537
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3537
>             Project: Cassandra
>          Issue Type: Bug
>         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
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 1.0.8
>
>         Attachments: 3537.txt
>
>
> 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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "MaHaiyang (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13162624#comment-13162624 ] 

MaHaiyang commented on CASSANDRA-3537:
--------------------------------------

Yes. 
{code:title=ExpiringMap.java|borderStyle=solid}
/**
     *
     * @param expiration the TTL for objects in the cache in milliseconds
     */
    public ExpiringMap(long expiration, final Function<Pair<K,V>, ?> postExpireHook)
    {
        ....
        timer = new Timer("EXPIRING-MAP-TIMER-" + (++counter), true);
        TimerTask task = new TimerTask()
        {
            public void run()
            {
                long start = System.currentTimeMillis();
                for (Map.Entry<K, CacheableObject<V>> entry : cache.entrySet())
                {
                    if (entry.getValue().isReadyToDie(start))
                    {
                        cache.remove(entry.getKey());
                        if (postExpireHook != null)
                            postExpireHook.apply(new Pair<K, V>(entry.getKey(), entry.getValue().getValue()));
                    }
                }
            }
        };
        timer.schedule(task, expiration / 2, expiration / 2);
    }
{code} 

The code above exist a bug . If a exception occured in the run method ,the timer will be killed and no longer to expire the value in cache .
I find that if there is no "EXPIRING-MAP-TIMER- x" thread in the memory  when there is a  heap problem , and if there is a "EXPIRING-MAP-TIMER- x" thread in the memory   there is no heap problem .
                
> 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

       

[jira] [Reopened] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "Jonathan Ellis (Reopened) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis reopened CASSANDRA-3537:
---------------------------------------

    
> 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
>         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
>             Fix For: 1.0.6
>
>
> 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

       

[jira] [Updated] (CASSANDRA-3537) ExpiringMap timer is not exception-proof

Posted by "Jonathan Ellis (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-3537:
--------------------------------------

    Attachment: 3537-v2.txt

v2 attached that address this for DSTPE in general.  Also fixes a double-log of RuntimeExceptions from ThreadPoolExecutor in our DTPE afterExecute code.

The culprit for this last part is this fragment from TPE.runTask:
{code}
.               try {
                    task.run();
                    ran = true;
                    afterExecute(task, null);
                    ++completedTasks;
                } catch (RuntimeException ex) {
                    if (!ran)
                        afterExecute(task, ex);
                    throw ex;
                }
{code}

That is, for "raw" exceptions thrown by the Task (and not wrapped inside FutureTask), runTask will already re-throw the exception, allowing our default uncaught exception handler to log it.  So we don't want to double-log that in DTPE.
                
> ExpiringMap timer is not exception-proof
> ----------------------------------------
>
>                 Key: CASSANDRA-3537
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3537
>             Project: Cassandra
>          Issue Type: Bug
>         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
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 1.0.9
>
>         Attachments: 3537-v2.txt, 3537.txt
>
>
> 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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "MaHaiyang (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13159742#comment-13159742 ] 

MaHaiyang commented on CASSANDRA-3537:
--------------------------------------

Thank u very much . But I have a test tonight  ,I changed my 4 cassandra nodes'  max heap size and memtable_total_space_in_mb setting as follow:
node A: heap size :6G  , memtable_total_space_in_mb = 1G (as you say ,I reduce the memtable_total_space_in_mb setting)
node B: 8G   ,  default ;
node C: 5G   ,  default ;
node D: 8G   ,  1G  ;
Then I restart the cluster, and begin to push data to it . This morning I have a frustrated test result ,  node A heap is full  ,node B OK , node C OK , node D heap is full . 

I don't know how to explain it .


                
> 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

       

[jira] [Commented] (CASSANDRA-3537) JVM heap is full and GC take no effect ,so many NonBlockingHashMap objects in heap

Posted by "Jonathan Ellis (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13162789#comment-13162789 ] 

Jonathan Ellis commented on CASSANDRA-3537:
-------------------------------------------

That's true, but unless you're seeing exceptions in the log it should be a non-issue.
                
> 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