Cassandra:太多sstables - 节点立即下降

时间:2017-01-30 03:21:39

标签: cassandra

  • 使用Cassandra 2.2.8。

我的情况是,为单个表创建了太多SSTable(98,000+),而为其他CF创建了更多SSTable。节点持续崩溃抱怨jre的内存不足。我尝试将linux nofile限制增加到200K,将max_heap_size增加到16G,但无济于事!

寻求帮助以了解如何减少SSTables数量(压缩?)并保持节点以便进行维护。

提前致谢!

错误:

Java Runtime Environment没有足够的内存来继续。 内存不足错误(os_linux.cpp:2627),pid = 22667,tid = 139622017013504

--------------- T H R E A D ---------------

当前线程(0x00007efc78b83000):JavaThread" MemtableFlushWriter:2"守护进程[_thread_in_vm,id = 22726,stack(0x00007efc48b61000,0x00007efc48ba2000)]

Stack:[0x00007efc48b61000,0x00007efc48ba2000],sp = 0x00007efc48b9f730,free space = 249k 本机帧:(J =已编译的Java代码,j =已解释,Vv = VM代码,C =本机代码) V [libjvm.so + 0xab97ea] VMError :: report_and_die()+ 0x2ba V [libjvm.so + 0x4f9dcb] 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(char *,unsigned long,unsigned long,bool)+ 0x29 V [libjvm.so + 0x91502a] os :: commit_memory(char *,unsigned long,unsigned long,bool)+ 0x2a

JRE版本:Java(TM)SE运行时环境(8.0_65-b17)(版本1.8.0_65-b17)

1 个答案:

答案 0 :(得分:1)

我会将此视为死节点情况:

https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsReplaceNode.html

https://docs.datastax.com/en/cassandra/2.1/cassandra/operations/opsReplaceNode.html

完成程序后,节点将减少sstables等等。困扰我的是你是如何进入这种情况的。您能提供一些架构,插入,删除,ttl相关信息并描述工作负载吗?