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



如何将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

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

如果您决定更改Java堆大小,那么MAX_heap_SIZE和heap_NEWSIZE应该在conf/casandra-env.sh.中一起设置

在cassandra-env.sh中,搜索以下行:

#MAX_HEAP_SIZE="4G"

代码中的这一行发生在MAX_HEAP_SIZE计算完成之后,因此它起到了重写的作用。取消注释,并相应地进行设置。

MAX_HEAP_SIZE="8G"

8G以上要小心。关于JVM调优的指导,我推荐Amy Tobey的Cassandra 2.1 tuning Guide。她提供了一些调整CMS的技巧,以及关于实现新G1GC的精彩部分。

更新cassandra-env.sh

删除/注释掉整个calculate_heap_sizes()功能

  • 这是cassandra调用的函数,用于自动分配JVM大小
  • 它占用1/4系统内存或8GB中较低的一个。这就是为什么默认的最大JVM大小是8GB

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

  • 该行以:"仅在…时计算大小"开头

  • 删除/保留HEAP_NEWSIZE注释掉

将CCD_ 5设置为新值。例如:16G

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

重新启动

  • 理想情况下,您只需要重新启动Cassandra服务。然而,我只是在重新启动整个机器后才让它工作

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

最新更新