[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Como lo hace PS para obtener el % de uso de CPU por proceso?



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.

Reply to: