获取Java中进程的CPU使用率

时间:2012-10-26 16:36:15

标签: java linux jboss

我需要从LINUX中的java代码中获取特定进程的CPU使用率。

我试过

  

进程p = Runtime.getRuntime()。exec(“top”);

  

进程p = Runtime.getRuntime()。exec(“top | grep java”);

但它没有回归任何东西。实际上我想获得几个JBOSS节点的CPU使用率。如果我可以“顶部”或java代码内部的东西,那么我可以处理out out找到我想要的细节。

但如果我尝试

  

进程p = Runtime.getRuntime()。exec(“ls -l”);

它正确地返回了输出。

我可以这样做,还是有其他选择呢?

感谢。

2 个答案:

答案 0 :(得分:2)

如果你知道进程ID,并且你是启动它们的用户(或者你有足够的权限),你可以通过读取伪文件/ proc / PID 来获取详细信息。 / STAT。在回答这个问题时,有一个很好的描述:How to calculate the CPU usage of a process by PID in Linux from C?

答案 1 :(得分:0)

这应该可行我相信......

Runtime.getRuntime().exec("ps -ao pcpu,args | grep java");
如果您坚持使用top -b | grep java

,请

top