Significado de %CPU reportado por top
Aldrin Martoq
amartoq en dcc.uchile.cl
Mie Feb 4 12:11:22 CLST 2009
On Thu, 2009-02-05 at 01:59 +0100, Miguel Oyarzo O. wrote:
> Aldrin Martoq escribió:
> > On Tue, 2009-02-03 at 15:41 -0700, Alejandro Weinstein wrote:
> >> Estoy un poco confundido con el significado de %CPU reportado por top.
> >> La siguiente es la definicion del manual:
> >> k: %CPU -- CPU usage
> >> The task's share of the elapsed CPU time since the last screen
> >> update, expressed as a percentage of total CPU time. In a true SMP
> >> environment, if 'Irix mode' is Off, top will operate in 'Solaris
> >> mode' where a task's cpu usage will be divided by the total number
> >> of CPUs. You toggle 'Irix/Solaris' modes with the 'I' interactive
> >> command.
> >
> > En castellano: El % de CPU indica el porcentaje de uso de un proceso
> > _por CPU_.
> No dice eso, el parametro muestra el % de tiempo de CPU que las tareas
> de ese proceso han usado entre un refresco y otro.
Sorry, no pretendia decir que tradujeran mal, sino explicar cual es el
comportamiento. Ejemplisticamente:
El Irix mode On es el default, un ejemplo aca:
top - 11:58:55 up 1 day, 40 min, 2 users, load average: 0.43, 0.12, 0.04
Tasks: 62 total, 2 running, 60 sleeping, 0 stopped, 0 zombie
Cpu0 : 19.1%us, 51.5%sy, 0.0%ni, 27.7%id, 1.0%wa, 0.0%hi, 0.7%si, 0.0%st
Cpu1 : 12.9%us, 65.7%sy, 0.0%ni, 18.2%id, 2.6%wa, 0.0%hi, 0.7%si, 0.0%st
Irix mode On
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16313 root 20 0 566m 190m 4096 S 148 37.8 0:33.08 java
Tengo 2 cpu's, en irix mode eso significa que tengo 200% de CPU. Si
sumas el idle, te da 45.9% si a eso le sumas el 148% de cpu te da un
193%. El resto (7%) son otros procesos/tareas.
Ahora un ejemplo en Irix mode Off (presionas 'I'):
top - 12:06:14 up 1 day, 48 min, 2 users, load average: 0.77, 0.36, 0.17
Tasks: 62 total, 2 running, 60 sleeping, 0 stopped, 0 zombie
Cpu(s): 28.0%us, 56.9%sy, 0.0%ni, 11.3%id, 1.2%wa, 0.2%hi, 2.5%si, 0.0%st
Irix mode Off
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16513 root 20 0 571m 188m 4112 S 85.2 37.5 0:51.27 java
En modo no-Irix top reporta el % de cpu relativo al sistema global, es
decir jamas sobrepasara el 100%. Si sumas el idle mas el java 11.3% +
85.2% te da 96.5%. El resto (3.5%) son otros procesos/tareas.
> Si tienes un programa multi-thread ocupando el 100% de 3
> > CPU's, entonces su % de CPU es 300%.
> No, Si es 1 programa MThR que usará las 3 CPUs este siempre usara el
> 100% de ella (no importa lo que hagas, los ciclos de CPUs no se
> desperdician), pero top podria repotar un 10% de uso de CPU entre
> refresco y refresco (tareas rapiditas de ejecutar)
> Si disminuyes tu tiempo de refreco, top te mostrará mayor tiempo de
> utilizacion entre cada refresco.
Nones, el % de cpu _no depende_ del intervalo en que mides!!
[En realidad si, ya que top gasta cpu mientras mide, pero descartemos
los efectos cuanticos ;)]
--
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/887d65be/attachment.bin
Más información sobre la lista de distribución Linux