Memory 卡桑德拉吃记忆
我设置了Cassandra 2.1和以下属性:Memory 卡桑德拉吃记忆,memory,cassandra,cassandra-2.1,Memory,Cassandra,Cassandra 2.1,我设置了Cassandra 2.1和以下属性: MAX_HEAP_SIZE="5G" HEAP_NEWSIZE="800M" memtable_allocation_type: heap_buffers top实用程序显示cassandra消耗14.6G虚拟内存: KiB Mem: 16433148 total, 16276592 used, 156556 free, 22920 buffers KiB Swap: 16777212 total, 0 used, 16
MAX_HEAP_SIZE="5G"
HEAP_NEWSIZE="800M"
memtable_allocation_type: heap_buffers
top实用程序显示cassandra消耗14.6G虚拟内存:
KiB Mem: 16433148 total, 16276592 used, 156556 free, 22920 buffers
KiB Swap: 16777212 total, 0 used, 16777212 free. 9295960 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23120 cassand+ 20 0 14.653g 5.475g 29132 S 318.8 34.9 27:07.43 java
当我从Spark访问它时,它也会随着各种OutOfMemoryError异常而消亡
如何防止这种“OutOfMemoryErrors”并减少内存使用?Cassandra确实消耗了大量内存,但它可以控制,但需要调整GC[垃圾收集]设置 GC参数包含在JAVA_OPTS变量的bin/cassandra.in.sh文件中 您可以在JAVA_选项中应用这些设置
-XX:+UseConcMarkSweepGC
-XX:ParallelCMSThreads=1
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:CMSIncrementalDutyCycleMin=0
-XX:CMSIncrementalDutyCycle=10
或者让cassandra的脚本指定这些参数,而不是指定
MAX\u HEAP\u SIZE
和HEAP\u NEWSIZE
这些参数,因为它将为这些参数指定最佳值。谢谢您的回答。但是这个选项调整了GC参数,GC在堆内存上运行。在我的例子中,堆限制为5G,而cassandra消耗14g的虚拟内存。所以我假设这是堆外的,不能被这个选项控制。