[英]Monitoring Cassandra CPU usage with JMX/MBeans
我想编写一个简单的Java代码,用JMX监视Cassandra数据库。 现在,我不得不检索数据库的CPU使用率。 据我所知,可能的MBean是具有属性ProcessCpuLoad
的java.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.