Buenas listeros,
Me interesa hacer mi propia implementación de algunas 'features' del comando
ps, pero me he quedado estancado haciendo el cálculo del % de CPU por
proceso. Lo que he averiguado mediante un strace es que para hacer el
cálculo ps usa la información que hay en /proc/stat y en /proc/$pid/stat.
Entonces, ps calcula el tiempo de CPU con la simple suma de los valores
utime, stime, cutime y cstime del /proc/$pid/stat. Hacer la suma me
concuerda al milimetro con lo que luego reporta ps. Lo que no me cuadra por
ningún lado es el valor de %CPU que le da a un proceso determinado. Yo lo
calculo usando el tiempo total que os he comentado y haciendo una clásica
regla de tres con el tiempo total de CPU, este lo obtengo sumando los
tiempos que hay en la linea "^cpu " (la primera linea) del fichero
/etc/stat. Pero desgraciadamente, mire como lo mire, el % que obtengo no
concuerda ni de lejos con el del ps.

Alguien vé la diferencia entre mi cáculo y el que hace ps?

Muchas gracias!!!
Marc.

Responder a