我有一个双节点Cassandra(3.10)群集。我已经迁移了一些数据。根据每个节点中的nodetool,数据大小为1.4 TB。 我试图检查Cassandra实例所需的RAM大小 -
ps -aux | grep cassandra
我得到了:
root 2510 124 80.2 1515965216 26435808 pts/0 SLl 10:36 138:10 java -Xloggc:/opt/cassandra/logs/gc.log ...... /*/*.jar org.apache.cassandra.service.CassandraDaemon
在这里我们可以看到Cassandra在RAM中占用了近 26.5 GB的空间,我发现这个大小不断增加。
我想知道这是Cassandra的正常行为吗?
答案 0 :(得分:0)
此站点提供了不同包的规范,并提供了所有类型的硬件要求:
看看它,看看它是否在范围内。您甚至可以减少并限制其占用的RAM大小。
答案 1 :(得分:0)
所以这不是一个cassandra行为,更像是java的工作方式。在cassandra-env.sh文件中,您可以修改cassandra的起始和最大内存值。
-Xms<Value>
指定cassandra以
-Xmx<Value>
指定堆大小可以增长多少。
cassandra的一个常见做法是初始化流程,-Xms
和-Xmx
相同。这消除了服务器不得不扩展堆空间的开销,并允许它被控制,以便像你所拥有的那样出现问题。
另外,如果要超过12GB,请考虑使用G1GC代替CMS进行垃圾回收。