1

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

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

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

4

1 回答 1

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();
}
于 2013-04-11T08:25:19.317 回答