如何减少cassandra虚拟内存的使用?

时间:2014-11-13 11:44:40

标签: java windows-7 cassandra jvm virtual-memory

cassandra中是否有设置以减少内存使用量?我知道cassandra可以很好地管理内存,但出于测试目的,我不想只在我的Windows机器上运行cassandra服务时花费6Gb内存。

已更新

我已经厌倦了设置disk_access_mode: standart而不是disk_access_mode: auto。没有帮助。另外我注意到cassandra 2.0.9 cassandra.yaml文件默认不包含disk_access_mode。所以似乎(但我不确定)从cassandra中删除了disk_access_mode

3 个答案:

答案 0 :(得分:21)

正如@catpaws所指出的那样,密钥位于Tuning Java resources和cassandra-env.sh的文档中(在我的mac上我发现它位于/usr/local/etc/cassandra/cassandra-env.sh)但是她没有回答这个问题。

所以这就是我所做的和发生的事情: 我查看了我的Activity Monitor,发现java(cassandra)内存使用量约为4GB。然后我阅读了文档,发现~4GB与使用公式

的分配堆大致相同
max(min(1/2 ram, 1024MB), min(1/4 ram, 8GB)

然后我编辑了 cassandra-env.sh ,其中显示"覆盖这些以设置金额..."并设置

MAX_HEAP_SIZE="2GB"

形成原始的4GB。我也设置了

HEAP_NEWSIZE =" 400M"

但这不是减少内存使用量的必要条件。

我重新启动了cassandra并检查了Activity Monitor。它说内存使用java(cassandra)现在只有~2GB。

答案 1 :(得分:2)

Cassandra的conf / cassandra-env.sh文件控制环境设置。请参阅文件和文档中的评论:http://www.datastax.com/documentation/cassandra/2.1/cassandra/operations/ops_tune_jvm_c.html

答案 2 :(得分:0)

经过反复试验,我们发现z提供了最佳结果。还有助于远离Linux OOM杀手级雷达