Significado de %CPU reportado por top

Alejandro Weinstein alejandro.weinstein en gmail.com
Mie Feb 4 15:13:13 CLST 2009


2009/2/4 Aldrin Martoq <amartoq en dcc.uchile.cl>:
> No cuadran porque los contadores se sacan de _distintas partes_ y en
> _distintos instantes_, ni siquiera la linea de arriba te da 100%:
> 0.3%user + 0.2%sys +99.4%idle == 99.9%.

Pero el error es pequenio. No como en mi caso donde la diferencia es
significativa.

> Todo es calculado separadamente (global y por proceso) y debes tomarlo
> de esa forma. Un ejemplo es compilar el kernel:
>
> top - 14:25:42 up  3:26,  9 users,  load average: 2.45, 2.07, 1.24
> Tasks: 207 total,   4 running, 202 sleeping,   0 stopped,   1 zombie
> Cpu0  : 52.9%us, 15.6%sy,  0.0%ni,  0.0%id, 30.9%wa,  0.3%hi,  0.3%si,  0.0%st
> Mem:   2007220k total,  1821260k used,   185960k free,    52756k buffers
> Swap:  2112536k total,     5156k used,  2107380k free,   962488k cached
>  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
> 12729 amartoq   20   0 19024  11m 3368 R  5.3  0.6   0:00.16 cc1
> 12234 root      10 -10  493m 253m 244m S  2.0 12.9   3:39.70 vmware-vmx
> 11437 amartoq   20   0  242m  96m  26m S  1.7  4.9   1:46.67 firefox
>  6528 root      20   0  255m  88m  26m S  1.3  4.5   7:52.91 Xorg
>
> La CPU estuvo al 100% durante el intervalo (5 secs), pero si miras la
> lista de procesos no supera el 10% de cpu . En este caso es porque los
> programas que utilizaron CPU ya no estan corriendo; pero todo esta
> correcto dentro de su contexto ("4 running" tampoco cuadra y asi ...).

OK. Pero en mi caso el programa que usa la CPU sigue corriendo.

> Mi apuesta en este caso es que tu maquina es un notebook que varia la
> frecuencia de CPU y tanto la frecuencia de la CPU como el uso de tu
> programa deben estar "saltando", quizas podrias intentar fijar la
> frecuencia y tendras resultados mas "estables"; puedes intentar el
> cpufreq-applet de gnome o configurar
> en /sys/devices/system/cpu/cpu0/cpufreq/.

Es un SBC (Single Board Computer), con un procesador Pentium-M. Acabo
de revisar y no aparece el directorio cpufreq. Significa eso que esta
corriendo a una frequencia fija? (En mi laptop, que tiene el mismo
Ubuntu que el SBC, si me aparece el directorio, con los archivos
cpuinfo_min_freq y cpuinfo_max_freq entre otros).

Mas alla de que los numeros cuadren o no, me interesa saber si el
sistema esta muy cargado o no. Si miro el uso total de la CPU, me sale
0.3%, y parece ser que el sistema esta super holgado. Pero si miro por
proceso, aparece mi proceso usando el 30%, lo que parece una carga mas
significativa. Cual es la interpretacion correcta de estos datos?



>> 0.3% es el 30% de ocupacion de la CPU sumando todos los procesos durante
>> ese refresco de pantalla.
>> 23.7% representa el tiempo de uso de esa tarea en paticular.
>
> 0.3% es solo el porcentaje de cpu gastado en "userland". Si quieres
> saber cuanto de cpu se utiliza, es mejor restar 100% al idle == 0.6%.
>
> Tu 30% no tiene sentido, 0.3% es 0.3% en todas partes.

Eso no lo escribi yo por si acaso. En otro mail  pregunte de donde sale ese 30%.

Alejandro


Más información sobre la lista de distribución Linux