Cassandra:如何防止和调试节点内存不足?
Cassandra : how to prevent and debug node going Out Of Memory?
我的 Cassandra 节点经常内存不足,很难找出原因。
问题
- 你能列出我必须检查的内容以避免节点内存不足吗?
- 节点内存不足时如何调试?
谢谢
如果没有堆转储或错误日志,则无法确定确切的根本原因,请设置堆转储
关注link才知道真正的原因。
一些可能的原因
当需要压缩它们时,您的行可能变得太大而无法容纳在 RAM 中。压缩要求整行都适合 RAM。
还有每行 20 亿列的硬性限制,但实际上您不应该让行增长那么宽。通过将日期或服务器名称或数据集中常见的其他一些值添加到行键来将它们存储起来。
对于“经常写入几乎从不读取”的工作负载,您可以拥有非常宽的行,但不应接近 20 亿列标记。通过分桶将其保持在数百万。
对于经常读取整行的 write/read 混合工作负载,即使是数百列也可能太多了。
我的 Cassandra 节点经常内存不足,很难找出原因。
问题
- 你能列出我必须检查的内容以避免节点内存不足吗?
- 节点内存不足时如何调试?
谢谢
如果没有堆转储或错误日志,则无法确定确切的根本原因,请设置堆转储
关注link才知道真正的原因。
一些可能的原因
当需要压缩它们时,您的行可能变得太大而无法容纳在 RAM 中。压缩要求整行都适合 RAM。
还有每行 20 亿列的硬性限制,但实际上您不应该让行增长那么宽。通过将日期或服务器名称或数据集中常见的其他一些值添加到行键来将它们存储起来。
对于“经常写入几乎从不读取”的工作负载,您可以拥有非常宽的行,但不应接近 20 亿列标记。通过分桶将其保持在数百万。
对于经常读取整行的 write/read 混合工作负载,即使是数百列也可能太多了。