Verifique el uso de la CPU de cualquier proceso (como Tomcat) mediante programación

¿Cómo verificar el uso de la CPU para un proceso en particular (como Tomcat) y cuánto tiempo consume la misma cantidad de CPU mediante programación?

El problema es que se han configurado 8 tomcats, de los cuales 4 se ejecutan mientras que los otros 4 están detenidos. En cualquier momento, cuando cualquiera de los 4 tomcats continúa usando la misma cantidad de CPU durante mucho más tiempo, la aplicación. se cuelga y, por lo tanto, manualmente tengo que matarlo y comenzar cualquier otro. Así que tengo que vigilar constantemente a los tomcats, lo que en realidad es un proceso tonto.

Así que necesito una solución para detectar el lapso de tiempo y la cantidad de uso de la CPU, y tan pronto como haya un problema, el proceso (como Tomcat) debe detenerse/eliminarse mediante programación.

preguntado el 11 de abril de 13 a las 04:04

Cuando habla de uso de la CPU, ¿se refiere a la CPU del usuario? ¿Quiere decir porcentaje de CPU de usuario? ¿Quiere saber el porcentaje agregado de uso de CPU para los cuatro procesos de Tomcat? ¿O desea saber el uso de la CPU para cada uno de los Tomcat? Aquí hay muchas preguntas que deben abordarse antes de poder responder su pregunta. -

Sí, quiero decir porcentaje de CPU que consumen los tomcats. Es como si quisiera rastrear el porcentaje de uso de CPU de cada gato. -

1 Respuestas

Si estás usando 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();
}

Respondido 11 Abr '13, 09:04

obtuve los otros detalles pero no los detalles del porcentaje de CPU. ¿Cómo obtener esa información? - Sharmic

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.