繁体   English   中英

使用JMX / MBean监视Cassandra CPU使用情况

[英]Monitoring Cassandra CPU usage with JMX/MBeans

我想编写一个简单的Java代码,用JMX监视Cassandra数据库。 现在,我不得不检索数据库的CPU使用率。 据我所知,可能的MBean是具有属性ProcessCpuLoadjava.lang:type=OperatingSystem

但是,在这种情况下,结果似乎将是JVM中运行的所有进程的CPU使用率,而不仅仅是Cassandra线程。 这个假设正确吗?

我还想知道将JConsole连接到数据库时,哪些数据显示为CPU使用率。 是否可以直接访问这些值(我的意思是没有JConsole)? 还是有另一个Mbean能够准确提供所需的值?

谢谢,尼科

操作系统mbean中的ProcessCpuLoad是正确的。 它不是所有的JVM,只有一个报告它的JVM。 您在单个JVM中没有运行多个进程,每个Java应用程序将JVM作为单个进程运行。

您可以使用java.lang:type=Threading监视花费在各个线程上的cpu时间,但是Cassandra中有大量线程,并且它可能永远不会完全正确(缺少GC时间之类的东西)。

如果不想使用jconsole,可以检查:

ps -p <whatever-your-cassandra-pid-is> -o %cpu

# or depending on OS/installer 

ps -p `cat /var/run/cassandra.pid` -o %cpu

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM