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