【问题标题】:Monitoring Cassandra CPU usage with JMX/MBeans使用 JMX/MBeans 监控 Cassandra CPU 使用率
【发布时间】:2016-06-28 14:44:28
【问题描述】:

我想编写一个简单的 Java 代码来使用 JMX 监控 Cassandra 数据库。现在我坚持检索数据库的 CPU 使用率。据我所知,可能的 MBean 是 java.lang:type=OperatingSystem 属性为 ProcessCpuLoad

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

我还想知道当使用 JConsole 连接到数据库时,哪些数据会显示为 CPU 使用率。是否可以直接访问这些值(我的意思是没有 JConsole)?或者是否有另一个 Mbean 可以提供完全期望的值?

谢谢, 妮可

【问题讨论】:

    标签: java cassandra cpu-usage jmx mbeans


    【解决方案1】:

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

    您可以使用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-14
      • 2012-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多