cassandra - cassandra 中的 G1GC 垃圾收集

标签 cassandra garbage-collection

我们正计划将 GC 从 CMS 移至 G1GC。如果我们更改为 G1GC,这些参数是否仍需要从 dse 移至 apache。使用 G1GC 时这些参数如何影响垃圾收集

-XX:ThreadPriorityPolicy=42
-XX:+HeapDumpOnOutOfMemoryError
-Xss256k

# Larger interned string table, for gossip's benefit (CASSANDRA-6410)
-XX:StringTableSize=1000003
-XX:+AlwaysPreTouch
# Disable biased locking as it does not benefit Cassandra.
-XX:-UseBiasedLocking

`# Enable thread-local allocation blocks and allow the JVM to automatically
-XX:+UseTLAB
-XX:+ResizeTLAB
-XX:+UseNUMA
-XX:+PerfDisableSharedMem
-Djava.net.preferIPv4Stack=true`

最佳答案

这些在 CMS 和 G1 之间几乎没有区别。
TLAB与 CMS 相同,它可以通过为每个线程提供一个缓冲区来提供帮助,它们可以在 eden 空间中直接分配该缓冲区,这意味着没有线程安全分配的争用或要求(要快得多)。但是,如果您有很多事件线程(例如,连接了 1000 个以上事件客户端的大型集群),由于每个线程缓冲区最终都会变小,并且随着不同线程在不同时间变为事件状态,调整大小会变得不准确。此外,如果发生较大的插入,则分配将无法放入缓冲区,并且最终还是会在共享空间中进行分配。也就是说,使用 TLAB/resize 运行几乎总是更好。
UseBiasedLocking也与 CMS 相同,没有太多同步,STW 暂停会影响事情。
UseNUMA不适用于 g1 或 cms,仅适用于并行收集器。设置这个没有任何作用
PerfDisableSharedMem牺牲您调试和诊断性能问题的能力,以换取在刷新 hsperfdata 时防止可能的暂停
preferIPv4Stack不要使用ipv6

关于cassandra - cassandra 中的 G1GC 垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50337593/

相关文章:

mongodb - 为什么 MongoDB Consistent 不可用而 Cassandra Available 不一致?

mongodb - 选择哪个数据库(Cassandra、MongoDB、?)来存储和查询事件/日志/指标数据?

security - 如何在 Cassandra 中以特定用户身份登录、检查用户帐户并执行查询?

基于 PHP Memcache(d) 的 session : Should garbage collection be disabled?

java - Java 垃圾收集器的行为是随时间演变还是受到 JIT 的影响?

node.js - Node.JS 中的垃圾收集套接字

Cassandra 主键。如果整数与 varchar 的性能影响

python - 在 cassandra 中保存 zip 文件并读取它

javascript - 使用嵌套函数进行 JS 垃圾收集

javascript - 使用适当的 GC 删除 DOM 节点(无泄漏)