Significado de %CPU reportado por top

Aldrin Martoq amartoq en dcc.uchile.cl
Mie Feb 4 22:56:52 CLST 2009


On Wed, 2009-02-04 at 11:13 -0700, Alejandro Weinstein wrote: 
> 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:
[...] 
> > 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/.

Que la freq de cpu cambie es lo unico que se me ocurre para que tengas
valores tan dispares...

Como explico Eduardo Silva, los contadores se basan en "jiffies" lo cual
no es una unidad de tiempo sino una cantidad de ciclos de cpu; si la
velocidad de la cpu "salta" tendras distinta cantidad de jiffies; luego
yo esperaria que los calculos se fueran a la pailas o tal vez estoy
equivocado en esta parte.

Al menos es la explicacion que tengo, yo tenia valores muy extran~os por
ejemplo en maquinas VMware server por esta razon: el contador de ticks
se iba a las pailas, un sleep 10 podia durar 60 segundos y tengo otras
historias similares; claro que en la version 2 mejoraron esto
considerablemente y hace tiempo que no he visto nada raro.



> 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).

Puedes ver la freq de la cpu en /proc/cpuinfo.

Prueba instalando el modulo cpufreq_userspace. 


> Mas alla de que los numeros cuadren o no, me interesa saber si el
> sistema esta muy cargado o no.

Hmmm intenta nmon o algun profiler (systemtap?). Depende del paraque: si
quieres gastar menos bateria, mejorar rendimiento...



> Si miro el uso total de la CPU, me sale
> 0.3%, y parece ser que el sistema esta super holgado.

Insisto: Separa que significa en top: us, sy, wa, id, etc ... Tu CPU
usada es 100% - idle.

> 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?

Quizas hay un bug en top o el kernel en la manera como estan
considerando los contadores, y nadie se ha dado cuenta aun... Si puedes
hacer el caso repetible, reportalo a tu distro.


-- 
Aldrin Martoq <amartoq en dcc.uchile.cl>
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : no disponible
Tipo       : application/pgp-signature
Tamaño     : 197 bytes
Descripción: This is a digitally signed message part
Url        : http://listas.inf.utfsm.cl/pipermail/linux/attachments/20090204/9624bd80/attachment.bin


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