【问题标题】:Check CPU usage of any process(like tomcat) programmatically以编程方式检查任何进程(如 tomcat)的 CPU 使用率
【发布时间】:2013-04-11 03:38:51
【问题描述】:

如何检查特定进程(如 tomcat)的 CPU 使用率以及它以编程方式消耗相同 CPU 量的时间?

问题是配置了8个tomcat,其中4个运行,而其他4个停止。任何时候,当 4 个 tomcat 中的任何一个继续使用相同的 CPU 数量时,应用程序会持续更长时间。挂起,所以我必须手动杀死它并启动其他任何一个。所以我必须经常关注tomcats,这实际上是一个愚蠢的过程。

所以我需要一个解决方案来检测时间跨度和 CPU 使用量,一旦出现问题,就应该以编程方式停止/终止进程(如 tomcat)。

【问题讨论】:

  • 当您谈到 CPU 使用率时,您是指用户 CPU 吗?你的意思是用户CPU的百分比?您想知道四个 Tomcat 进程的 CPU 使用率合计百分比吗?或者您想知道每个 Tomcat 的 CPU 使用率吗?这里有很多问题需要先解决,然后才能回答您的问题。
  • 是的,我的意思是说tomcats消耗的CPU百分比。就像我想跟踪每个tomcat的CPU使用百分比一样。

标签: tomcat cpu-usage


【解决方案1】:

如果你使用 Windows...

Process proc = Runtime.getRuntime().exec ("tasklist.exe");
InputStream procOutput = proc.getInputStream ();
if (0 == proc.waitFor ()) {
// TODO scan the procOutput for your data
}

Linux...

try {
    String line;
    Process p = Runtime.getRuntime().exec("ps -e");
    BufferedReader input =
            new BufferedReader(new InputStreamReader(p.getInputStream()));
    while ((line = input.readLine()) != null) {
        System.out.println(line); //<-- Parse data here.
    }
    input.close();
} catch (Exception err) {
    err.printStackTrace();
}

【讨论】:

猜你喜欢
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-02
  • 2018-03-24
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
相关资源
最近更新 更多