cassandra群中的突然负荷峰值

nsc4cvqm  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(286)

最近我们的cassandra集群出现了问题。也许有人有办法解决这个问题。我们在一个40节点的集群上运行cassandra3.11.7。我们使用的是复制因子=3和一致性级别的读/写仲裁。
最近,单个节点的cpu负载突然激增,并持续了一段时间。在这期间,我们可以观察到许多丢弃的和排队的突变。如果我们在有问题的节点上重新启动cassandra,那么一个或两个其他节点也会遇到同样的问题。我们已经检查了日志文件和访问模式,还没有找到原因。
这种行为最常见的原因是什么?我们应该在哪里仔细看看?有没有人有过类似的经历?

dy2hfwbg

dy2hfwbg1#

如果我们在有问题的节点上重新启动cassandra,那么一个或两个其他节点也会遇到同样的问题。
首先,当单个节点出现问题时,重启它通常不会产生任何效果。如果有任何问题,您将清除jvm堆…它将在启动时快速重新填充。说真的,不要指望重启节点就能解决任何问题。
有没有人有过类似的经历?
是的,好几次。对于与Cassandra无关的事情:
您是否处于云环境中?跑 iostat 寻找高比例的 iowait 以及 steal . 有时共享资源不能很好地与其他人协作。如果你没有 iostat ,明白了吗( yum install -y sysstat ).
检查所有用户的cron。我们曾经遇到一个问题,文件完整性检查器作为我们的基础映像的一部分安装,它正是你所说的。
这种行为最常见的原因是什么?我们应该在哪里仔细看看?
对于与Cassandra有关的问题,我看到了一些可能性:
修理。检查节点是否正在运行修复。你可以看到merkle树的计算 nodetool compactionstats 并用 nodetool netstats .
压实。检查 nodetool compactionstats . 如果是这样,您可以尝试降低压缩吞吐量,这样就不会影响正常操作。
垃圾收集。检查 gc.log.* 文件夹。如果是gc,通常可以通过读取和调整gc设置来修复。如果您的团队中没有人是jvmgcMaven,我建议使用g1gc,因为它消除了很多猜测。
请注意,我上面提到的一切都无法通过重新启动来修复。事实上,它很可能会重新回到原来的状态。

相关问题