WARN [ScheduledTasks:1] 2013-11-04 22:51:06,619 GCInspector.java(行 142)堆是0.892615008651467满。您可能需要减少记忆 和/或缓存大小。卡桑德拉现在将冲到最大的两个 记忆释放记忆。调整flush_largest_memtables_at cassandra.yaml中的阈值,如果你不想让Cassandra这样做的话 自动
WARN [ScheduledTasks:1] 2013-11-04 22:51:06,633 StorageService.java(第3600行)Flushing CFS(Keyspace ='OpsCenter', ColumnFamily ='rollups60')以缓解内存压力INFO [ScheduledTasks:1] 2013-11-04 22:51:06,634 ColumnFamilyStore.java (第630行)排队等待Memtable-rollups60 @ 573393486(240/4340 序列化/活字节,15个操作)
错误[Thrift:46] 2013-11-04 22:51:06,621 CassandraDaemon.java(第192行)线程中的异常
Thread [Thrift:46,5,main] java.lang.OutOfMemoryError:Java堆空间 在java.util.Arrays.copyOf(未知来源)at java.io.ByteArrayOutputStream.write(未知来源)at org.apache.thrift.transport.TFramedTransport.write(TFramedTransport.java:146) 在 com.datastax.bdp.transport.server.TNegotiatingServerTransport.write(TNegotiatingServerTransport.java:390) 在 org.apache.cassandra.thrift.TBinaryProtocol.writeBinary(TBinaryProtocol.java:73) 在org.apache.cassandra.thrift.Column.write(Column.java:579)at at org.apache.cassandra.thrift.ColumnOrSuperColumn.write(ColumnOrSuperColumn.java:554) 在 org.apache.cassandra.thrift.Cassandra $ get_slice_result.write(Cassandra.java:7900) 在org.apache.thrift.ProcessFunction.process(ProcessFunction.java:34) 在org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34) 在 org.apache.cassandra.thrift.CustomTThreadPoolServer $ WorkerProcess.run(CustomTThreadPoolServer.java:201) 在java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(未知 来自java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知 来自)java.lang.Thread.run(未知来源)INFO [FlushWriter:20] 2013-11-04 22:51:06,635 Memtable.java(第495行) 完成冲洗 /data/OpsCenter/rollups60/OpsCenter-rollups60-ic-889-Data.db(519 对于commitlog位置ReplayPosition(segmentId = 1383597360912, 位置= 10472305)
INFO [FlushWriter:20] 2013-11-04 22:51:06,639 Memtable.java(第461行)写作 Memtable-rollups300 @ 1479174915(288/5560序列化/实时字节,12个操作)
INFO [StorageServiceShutdownHook] 2013-11-04 22:51:06,683 Server.java (第160行)停止侦听CQL客户端INFO [StorageServiceShutdownHook] 2013-11-04 22:51:06,684 Gossiper.java (第1108行)宣布关闭
当压缩进行时,我的节点就会死掉。我有8G的max_heap_size,但我仍然不知道如何配置我的堆大小。
答案 0 :(得分:2)
问题可能是缓存的预处理语句太多(在1.2.11中解决),查看CASSANDRA-6107。对于可以存储的预准备语句的数量存在硬编码限制,但是如果语句本身很大并且足够的它们被缓存,则会导致高内存消耗,并且因为语句存储在缓存中并且从未被逐出说缓存GC不会摆脱它们。修复方法是使缓存的限制为总可用内存的百分比,并避免缓存超出最大阈值的预准备语句。
然而,在说完之后,许多事情可能导致高内存消耗,包括: