[ 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