如何通过 Java 进程查找 CPU 使用率



我想监控某些Java应用程序的CPU使用情况。我不想使用这样的工具jconsole (JMX)

是否有任何方法可以通过Java代码进行检查?

使用 JavaSysMon

目前它报告:

  • 工艺表(也可作为树使用),包括 pid、ppid、名称、命令行, 用户, 进程大小, 驻留进程大小, 用户时间,和内核时间。
  • 正常运行时间
  • 当前进程的 pid
  • 总内存和可用内存
  • 总隔夜利息和自由掉期
  • 中央处理器使用率
  • 中央处理器频率
  • 处理器数量

你也可以使用 jmx mbeans 或使用 Runtime.exec() 获取 PID,并使用调用特定于平台的命令,如 ps。

一种方法是使用

Runtime.getRuntime().exec(command);

并运行top | grep java命令。

您应该从 Java 类本身检索 MX Bean ThreadMXBean并使用 get*CpuTime() 的方法。

否则,您可以在 Java 进程 PID 上使用旧的 top 和 grep。

如果你足够勇敢,linux-tools包里也有perf工具。

希望有帮助!

最新更新