如何设置Cassandra(> 2.0)JVM堆大小为8GB?

时间:2016-01-12 13:47:59

标签: java cassandra jvm cassandra-2.0

如何设置Cassandra(> 2.0)JVM堆大小为8GB?当我输入free -m时,它给了我以下内容。如何将Cassandra JVM堆大小设置为8GB?

             total       used       free     shared    buffers     cached
Mem:         16047      11336       4711          0         81       5814
-/+ buffers/cache:       5441      10606
Swap:            0          0          0

2 个答案:

答案 0 :(得分:4)

如文档的Tuning Java resources部分所述:

  

如果您决定更改Java堆大小,则应在conf / cassandra-env.sh中将MAX_HEAP_SIZE和HEAP_NEWSIZE设置为一起。

在cassandra-env.sh中搜索此行:

_changes

代码中的那一行发生在MAX_HEAP_SIZE计算发生之后,因此它可以作为覆盖。取消注释,并相应地进行设置。

#MAX_HEAP_SIZE="4G"

小心超过8G。有关调整JVM的指导,我建议Amy Tobey's Cassandra 2.1 Tuning Guide。她提供了一些调整CMS的技巧,以及实施新G1GC的一个很好的部分。

答案 1 :(得分:1)

更新cassandra-env.sh

删除/注释掉整个calculate_heap_sizes()函数

  • 这是cassandra调用的自动分配JVM大小的函数。
  • 它占用1/4系统内存或8GB的较低者。这就是默认的最大JVM大小为8GB
  • 的原因

使用$MAX_HEAP_SIZE删除/注释掉其他行。

  • 该行以:"仅计算大小..."

  • 删除/保持HEAP_NEWSIZE注释掉

MAX_HEAP_SIZE设置为新值。例如:16G

  • 这应该是你需要做的唯一的地方

<强>重新启动

  • 理想情况下,您只需重新启动Cassandra服务即可。但是,我重新启动整台机器后才开始工作。

另见另一个例子:https://medium.com/@mlowicki/move-cassandra-2-1-to-g1-garbage-collector-b9fb27365509