¿Cómo obtengo el porcentaje promedio de CPU (por cada segundo) consumido por un solo proceso desde que comienza hasta que finaliza (existe)? ¿Puedo hacer esto con Top?
Respuesta1
Puede utilizar la ps
utilidad para esto.
Para ver el porcentaje de uso de CPU de por vida de un solo proceso, puede hacer:
ps h -p $PID -o %cpu
Para ver el porcentaje de CPU de todos los procesos en ejecución, puede hacer algo como:
ps ax -o pid,%cpu,comm
Respuesta2
Una forma de hacerlo es escribir un pequeño script Bash que:
- toma el nombre del proceso/comando de interés como único argumento,
$arg1
- extrae el PID para ese proceso con una adecuada
ps | grep
o unaps | awk
- mantiene el número PID en
$arg2
- ejecuta un trabajo cron en el segundo con un ejecutable basado en un
ps -eo pcpu,cmd | egrep $arg1 >> logfile-$arg2
- condiciona la terminación del trabajo cron a si el proceso aún existe (simplemente pruebe el número PID que almacenó
$arg2
) - sale cuando el PID de prueba ya no aparece en la salida del
ps