- 使用卡桑德拉2.2.8。
我处于为单个表创建太多SSTables(98,000+)以及其他CF需要更多SSTable(98,000+)的情况。节点不断抱怨jre的内存不足。我试过增加linux nofile限制到200K和max_heap_size到16G,但无济于事!卡桑德拉:太多sstables - 节点出现故障瞬间
寻找帮助,知道如何为我怎样才能减少SSTables的#(压实?),并保持节点了这么去做保养。
提前致谢!
错误:
没有足够的内存让Java运行时环境继续运行。 内存不足错误(os_linux.cpp:2627),pid = 22667,tid = 139622017013504
--------------- THREAD ---------- -----
当前线程(0x00007efc78b83000):JavaThread “MemtableFlushWriter:2” 守护程序[_thread_in_vm,ID = 22726,叠层(0x00007efc48b61000,0x00007efc48ba2000)]
堆栈:[0x00007efc48b61000,0x00007efc48ba2000],SP =本地帧:(J =已编译的Java代码,j =已解释,Vv = VM代码,C =本机代码) V [libjvm.so + 0xab97ea] VMError :: report_and_die()+ 0x2ba V [libjvm.so + 0x4f 9dcb] report_vm_out_of_memory(char const *,int,unsigned long,VMErrorType,char const *)+ 0x8b V [libjvm.so + 0x91a7c3] os :: Linux :: commit_memory_impl(char *,unsigned long,bool)+ 0x103 V [libjvm.so + 0x91ad19] OS :: pd_commit_memory(字符*,无符号长,无符号长,布尔)+ 0x29 V [libjvm.so + 0x91502a] OS :: commit_memory(字符*,无符号长,无符号长,布尔) + 0x2a
JRE版本:爪哇(TM)SE运行时环境(8.0_65-B17)(建1.8.0_65-B17)
您是否更改cassandra.yml中的压实相关设置? –
您好,谢谢您采纳我的问题。不,压实相关的设置不会改变;事实上Cassandra.yaml文件中完全没有改变。我可以看到初始化C *时,SSTabes被打开,数量巨大!没有留下JVM的空间,因为结果会导致oom错误。 Iam现在无法启动节点 – Asad
您能否把所有的错误和警告日志? –