为什么Datastax Opscenter吃太多CPU?

时间:2016-11-21 12:22:35

标签: cpu-usage opscenter cassandra-2.1

环境:

{{1}}

现在,节点上的代理平均消耗约1300 cpu(3200可用)。应用程序密钥空间中唯一的转换数据是~1500 w / s。

数字表和opscenter之间有什么关系吗?是否表现相似,占用大量CPU因为代理商试图从太多指标中编写数据,或者它是某种错误!?

注意,以前版本的opscenter 5.2.4上的行为相同。出于这个原因,我首先尝试将opscenter升级到最新版本。

来自opscenter 5.2.5发行说明: "修复了代理在某些集群拓扑上CPU使用率过高的问题。 (OPSC-6045)"

非常感谢任何帮助/意见。

谢谢。

1 个答案:

答案 0 :(得分:0)

使用你提供的令人敬畏的工具观察Chris,在特定代理的PID上注意到堆利用率恒定在90%以上并且触发了大量GC活动,并且GC暂停时间接近1秒。在这段时间里,我怀疑池化线程必须等待并阻止我的cpu。无论如何,我不是这个领域的专家。

我决定将代理的堆从默认值128扩大到更好的值512,我看到所有GC压力都消失了,现在任何线程分配都很好。

整体而言,opscenter代理的cpu利用率从40-50%下降到1-2%。我可以忍受1-2%,因为我确信CPU已被jmx-metrics消耗。

所以我的建议是编辑文件:

datastax-agent-env.sh

并更改Xmx的默认128值

-Xmx512M

保存文件,重新启动代理,然后监控一段时间。

http://s000.tinyupload.com/?file_id=71546243887469218237

再次感谢Chris。

希望这会有助于其他人。