Re: Significado de %CPU reportado por top

2009-02-10 Por tema Horst H. von Brand
Miguel Oyarzo O. ad...@aim.cl wrote:
 Aldrin Martoq escribió:

[...]

  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)

Esas son dos cosas completamente diferentes.

Y top(1) intenta mostrar el _promedio_ del uso de las CPU en el ultimo
periodo de refresco. Esto nada tiene que ver con los resultados que
muestra segun periodos.
-- 
Dr. Horst H. von Brand   User #22616 counter.li.org
Departamento de InformaticaFono: +56 32 2654431
Universidad Tecnica Federico Santa Maria +56 32 2654239
Casilla 110-V, Valparaiso, Chile 234   Fax:  +56 32 2797513



Re: Significado de %CPU reportado por top

2009-02-10 Por tema Horst H. von Brand
Eduardo Silva edsi...@gmail.com wrote:
  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 ;)]

Exacto.

 Todo proceso de medicion de uso de CPU depende del intervalo segun fue
 calculado.

No. La manera tradicional de medir es fijarse en cada tick del reloj en
que anda la CPU, y sumarle ese intervalo (jiffy) a esa tarea. Si hay dos (o
mas) tareas en el mismo tick, las otras quedan sin contabilizar, claro.

No se exactamente como lo hacen los tickless kernels que se usan
ahora... pero me imagino que simplemente contabilizan todo el periodo
(variable) a la tarea del caso.

Una manera mas precisa (que algunos sistemas usan) es tener otro reloj con
periodo diferente a los jiffies y ver en que anda la CPU cuando este se
dispara. De esta forma se disminuyen efectos periodicos sincronizados con
los jiffies.

 En realidad para entender mejor la medicion de % CPU es necesario explicar
 un poco como se calcula:
 
 Como medida base se utilizan los jiffies (
 http://en.wikipedia.org/wiki/Jiffy_(time), cada jiffie puede definirse como
 la duracion de un tick ), es decir, un proceso o el sistema en general usa X
 jiffies desde su inicio y la forma de calculo depende de la cantidad
 utilizada en un lapso de tiempo determinado comparado con el total.
 
 Las variables que intervienen son las siguientes:
 
 (se asume que 1 jiffie es igual a 1 clock tick)

Por definicion.

 a) Jiffies utilizados
 b) Jiffies total (capacidad maxima)
 c) Clock Ticks por segundo
 d) Frecuencia de medición

 Dependendiendo de que es lo que se quiera medir dependera de donde se
 obtiene la informacion en linux, supongamos que tenemos un proceso N:

Donde se obtiene la informacion no tiene sentido, los datos listados son
obtenidos por el nucleo mediante la estrategia indicada antes.
-- 
Dr. Horst H. von Brand   User #22616 counter.li.org
Departamento de InformaticaFono: +56 32 2654431
Universidad Tecnica Federico Santa Maria +56 32 2654239
Casilla 110-V, Valparaiso, Chile 234   Fax:  +56 32 2797513


Re: Significado de %CPU reportado por top

2009-02-10 Por tema Horst H. von Brand
Alejandro Weinstein alejandro.weinst...@gmail.com wrote:
 2009/2/4 Alejandro Weinstein alejandro.weinst...@gmail.com:
  OK. Viendo el detalle por CPU los numeros tienen mas sentido
 
 Ahora estoy confundido otra vez. La siguiente es una captura de top,
 en una maquina con UNA cpu:
 
 Tasks:  61 total,   2 running,  59 sleeping,   0 stopped,   0 zombie
 Cpu0  :  0.3%us,  0.2%sy,  0.0%ni, 99.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
 Mem:507380k total,87544k used,   419836k free, 5084k buffers
 Swap:   385520k total,0k used,   385520k free,34484k cached
 
   PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
  4370 ajw   20   0  102m 9.9m 4200 S 23.7  2.0   0:47.09 python
  4341 ajw   20   0 14996 4296 2300 S  1.7  0.8   0:03.99 python
 1 root  20   0  2844 1696  548 S  0.0  0.3   0:01.57 init
 
 Tengo Cpu0: 0.3%. y uno de los procesos python usando 23.7%.
 
 Como cuadran estos numeros? Significa que el proceso uso el 23.7% del
0.3%?

top(1) dice, inter alia:
 
   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.

Esto indica que es el % del uso total del CPU, o sea, el 23,7% del 0,3%.
-- 
Dr. Horst H. von Brand   User #22616 counter.li.org
Departamento de InformaticaFono: +56 32 2654431
Universidad Tecnica Federico Santa Maria +56 32 2654239
Casilla 110-V, Valparaiso, Chile 234   Fax:  +56 32 2797513


Re: Significado de %CPU reportado por top

2009-02-10 Por tema Horst H. von Brand
Aldrin Martoq amar...@dcc.uchile.cl wrote:
 On Thu, 2009-02-05 at 13:06 +0100, Miguel Oyarzo O. wrote:
  Alejandro Weinstein escribió:
   Ahora estoy confundido otra vez. La siguiente es una captura de top,
   en una maquina con UNA cpu:
   Tasks:  61 total,   2 running,  59 sleeping,   0 stopped,   0 zombie
   Cpu0  :  0.3%us,  0.2%sy,  0.0%ni, 99.4%id,  0.0%wa,  0.0%hi,  0.0%si,  
   0.0%st
   Mem:507380k total,87544k used,   419836k free, 5084k buffers
   Swap:   385520k total,0k used,   385520k free,34484k cached
 PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
4370 ajw   20   0  102m 9.9m 4200 S 23.7  2.0   0:47.09 python
4341 ajw   20   0 14996 4296 2300 S  1.7  0.8   0:03.99 python
   1 root  20   0  2844 1696  548 S  0.0  0.3   0:01.57 init
   Tengo Cpu0: 0.3%. y uno de los procesos python usando 23.7%.
   Como cuadran estos numeros? Significa que el proceso uso el 23.7% del 
   0.3%?

 No cuadran porque los contadores se sacan de _distintas partes_ y en
 _distintos instantes_,

No.

ni siquiera la linea de arriba te da 100%:
 0.3%user + 0.2%sys +99.4%idle == 99.9%.

Se conoce como error de redondeo...

 Todo es calculado separadamente (global y por proceso) y debes tomarlo
 de esa forma. Un ejemplo es compilar el kernel:

Se calcula por proceso (tarea), y se suma para obtener el total. O algo
equivalente.

 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 %MEMTIME+  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 ...).

No. La CPU estuvo en uso 52,9 + 15,6 = 68,5% del tiempo, las _pocas_ tareas
listadas suman algo de 10% de eso (== 7%).
-- 
Dr. Horst H. von Brand   User #22616 counter.li.org
Departamento de InformaticaFono: +56 32 2654431
Universidad Tecnica Federico Santa Maria +56 32 2654239
Casilla 110-V, Valparaiso, Chile 234   Fax:  +56 32 2797513


Re: Significado de %CPU reportado por top

2009-02-10 Por tema Horst H. von Brand
Alejandro Weinstein alejandro.weinst...@gmail.com wrote:

[...]

 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.

Yep. Tu cuello de botella _no_ es la CPU. Puede ser esperar al usuario,
esperar I/O, ...

   Pero si miro por
 proceso, aparece mi proceso usando el 30%,

... del uso de CPU total en el intervalo...

lo que parece una carga mas
 significativa.

Es significativa, claro. Minima igual.

Cual es la interpretacion correcta de estos datos?
-- 
Dr. Horst H. von Brand   User #22616 counter.li.org
Departamento de InformaticaFono: +56 32 2654431
Universidad Tecnica Federico Santa Maria +56 32 2654239
Casilla 110-V, Valparaiso, Chile 234   Fax:  +56 32 2797513


Re: Significado de %CPU reportado por top

2009-02-10 Por tema Horst H. von Brand
Aldrin Martoq amar...@dcc.uchile.cl wrote:

[...]

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

No lo explica en lo absoluto. Da numeros torcidos solo si el nucleo no
tiene presente este efecto. Y /tan/ dificil no es de manejar...

[...]

 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.

sleep 10 (sleep(3) y afines) solo pueden asegurar que te despiertan _no
antes_ de que hayan transcurrido 10s en este caso.

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

Esa es una excelente sugerencia: Definir exactamente que quieres saber,
luego determinar como mejor medirlo.
-- 
Dr. Horst H. von Brand   User #22616 counter.li.org
Departamento de InformaticaFono: +56 32 2654431
Universidad Tecnica Federico Santa Maria +56 32 2654239
Casilla 110-V, Valparaiso, Chile 234   Fax:  +56 32 2797513


Re: Significado de %CPU reportado por top

2009-02-10 Por tema Horst H. von Brand
Alejandro Weinstein alejandro.weinst...@gmail.com wrote:
1 2009/2/4 Aldrin Martoq amar...@dcc.uchile.cl:
 
  Hmmm intenta nmon o algun profiler (systemtap?). Depende del paraque: si
  quieres gastar menos bateria, mejorar rendimiento...
 
 En estos momentos me interesa saber si tengo que preocuparme por el
 rendimiento o no. Uno de los thread de mi programa esta haciendo
 calculos. Hay espacio para hacer estos calculos mas eficientes, pero
 no me interesa hacerlo a menos que sea necesario.

Buena idea!

Y la medicion de eso _no_ es via % CPU ni nada, sino determinar si el
_sistema_ cumple con tus requerimientos (y tal vez determinar que tanta
holgura hay al respecto).
-- 
Dr. Horst H. von Brand   User #22616 counter.li.org
Departamento de InformaticaFono: +56 32 2654431
Universidad Tecnica Federico Santa Maria +56 32 2654239
Casilla 110-V, Valparaiso, Chile 234   Fax:  +56 32 2797513


Re: Significado de %CPU reportado por top

2009-02-05 Por tema Alejandro Weinstein
2009/2/4 Daniel Serpell dserp...@gmail.com:
 El Wed, Feb 04, 2009 at 11:13:13AM -0700, Alejandro Weinstein escribio:
 Si quieres saber si esta muy cargado, el uso de CPU es irrelevante.

 Un ejemplo: si quieres saber si un estudiante tiene una carga de ramos
 muy grande, ¿te sirve mirar si en este minuto esta ocupado?. Claramente,
 en el momento que muestrees, o bien el estudiante está en clases (con un
 uso de casi 100% ojalá) o no (con un uso de 0%). Por más que lo desee,
 no puede está haciendo más del 100% en un momento determinado.

Pero si miro lo que hace el estudiante durante todo el dia, con una
ventana de tiempo de, por ejemplo, 5 minutos, y la mayor parte del
tiempo esta ocupado, puedo concluir que su carga es alta.

 Lo que debes mirar, es el tamaño de la cola de cosas por hacer promediado
 en el tiempo... osea, el promedio de cuantas cosas por hacer tienes.

 Esta medición, en un sistema Unix, la entregan las columnas load average
 que aparecen al principio en el top, o se pueden obtener con uptime.

 Los números corresponden a la carga promedio de 1, 5 y 15 minutos.

 Si la carga promedio es mayor que el número de CPUs de tu computador,
 significa que estas con sobrecarga.

OK. Supongamos que descubro que la carga promedio es mayor que 1
(asumiendo un CPU), como determino quien es el culpable? Mirar la
lista de procesos (por un rato), y ver el que tiene un %CPU mas alto
no es lo correcto? Volviendo a la analogia del estudiante, si el tipo
esta muy ocupado, como determino si es porque tiene muchas clases o si
es porque se la pasa pegado jugando al computador?

Alejandro.



Re: Significado de %CPU reportado por top

2009-02-05 Por tema Aldrin Martoq
2009/2/5 Alejandro Weinstein alejandro.weinst...@gmail.com:
 2009/2/4 Aldrin Martoq amar...@dcc.uchile.cl:
 Hmmm intenta nmon o algun profiler (systemtap?). Depende del paraque: si
 quieres gastar menos bateria, mejorar rendimiento...
 En estos momentos me interesa saber si tengo que preocuparme por el
 rendimiento o no.

Eso se llama prueba de estres.

 Uno de los thread de mi programa esta haciendo
 calculos. Hay espacio para hacer estos calculos mas eficientes, pero
 no me interesa hacerlo a menos que sea necesario.

Y segun como te va con el estres, un profiler y la regla 80/20.

Luego de esto, tendriamos que pichicatear mas fuerte...

 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.
 OK. Solo para aclarar mis conceptos: Usando una CPU, con frequencia
 fija, la suma de la columna %CPU debiera calzar, dentro de un margen
 razonable, con el uso total de la CPU. Estoy en lo correcto?

Una pregunta es si siempre tienes numeros absurdos o fue la unica vez
cuando mostrate aca... Lo normal es que tengas datos razonables, o hay
una pifia seria en algun lado. No te puedo asegurar si lo que te dije
de la freq esta 100% correcto, pero es mi interpretacion segun mi
experiencia.


Tambien creo que repeti como 4 veces que intentes con nmon, tendras
mucha mas info que un simple top.

http://www.ibm.com/developerworks/aix/library/au-analyze_aix/


Suerte,
-- 
Aldrin Martoq
http://aldrin.martoq.cl/


Re: Significado de %CPU reportado por top

2009-02-05 Por tema Alejandro Weinstein
2009/2/5 Aldrin Martoq amar...@dcc.uchile.cl:
 Una pregunta es si siempre tienes numeros absurdos o fue la unica vez
 cuando mostrate aca... Lo normal es que tengas datos razonables, o hay
 una pifia seria en algun lado. No te puedo asegurar si lo que te dije
 de la freq esta 100% correcto, pero es mi interpretacion segun mi
 experiencia.

El comportamiento absurdo es consistente. Voy a ver si puedo hacerlo
repetible con un script simple.

 Tambien creo que repeti como 4 veces que intentes con nmon, tendras
 mucha mas info que un simple top.

Voy a probar con nmon.

Alejandro.


Re: Significado de %CPU reportado por top

2009-02-05 Por tema Daniel Serpell
Hola!

El Thu, Feb 05, 2009 at 08:29:59AM -0700, Alejandro Weinstein escribio:
 2009/2/4 Daniel Serpell dserp...@gmail.com:
  El Wed, Feb 04, 2009 at 11:13:13AM -0700, Alejandro Weinstein escribio:
  Si quieres saber si esta muy cargado, el uso de CPU es irrelevante.
 
  Un ejemplo: si quieres saber si un estudiante tiene una carga de ramos
  muy grande, ¿te sirve mirar si en este minuto esta ocupado?. Claramente,
  en el momento que muestrees, o bien el estudiante está en clases (con un
  uso de casi 100% ojalá) o no (con un uso de 0%). Por más que lo desee,
  no puede está haciendo más del 100% en un momento determinado.
 
 Pero si miro lo que hace el estudiante durante todo el dia, con una
 ventana de tiempo de, por ejemplo, 5 minutos, y la mayor parte del
 tiempo esta ocupado, puedo concluir que su carga es alta.


Porque asumes que una ventana de 5 minutos es un muestreo razonable para
este caso. Tu computador, en cambio, cambia de tarea unas cientos de
veces por segundo de ser necesario, por lo que no es razonable muestrear
un instante específico.
 
  Lo que debes mirar, es el tamaño de la cola de cosas por hacer promediado
  en el tiempo... osea, el promedio de cuantas cosas por hacer tienes.
 
  Esta medición, en un sistema Unix, la entregan las columnas load average
  que aparecen al principio en el top, o se pueden obtener con uptime.
 
  Los números corresponden a la carga promedio de 1, 5 y 15 minutos.
 
  Si la carga promedio es mayor que el número de CPUs de tu computador,
  significa que estas con sobrecarga.
 
 OK. Supongamos que descubro que la carga promedio es mayor que 1
 (asumiendo un CPU), como determino quien es el culpable? Mirar la
 lista de procesos (por un rato), y ver el que tiene un %CPU mas alto
 no es lo correcto? Volviendo a la analogia del estudiante, si el tipo
 esta muy ocupado, como determino si es porque tiene muchas clases o si
 es porque se la pasa pegado jugando al computador?
 

Ninguna de las dos, no puedes definir un culpable. Si está muy ocupado es
porque tiene más de una cosa que hacer todo el tiempo, si lo que tiene
que hacer te interesa a ti o no no importa realmente.

¿Cuáles son los casos de uso?

- Tienes un computador que debe realizar varias cosas (por ejemplo, es
  servidor web, de correo y base de datos) y ves que su carga es muy
  alta.
 - debes pasar algunas de las tareas a otro computador o cambiar
el computador por uno más rápido.

- Debes realizar una tarea en un tiempo determinado y está demorando más
  de lo necesario.
 - En este caso, la carga no es útil como medición (es úna sóla tarea),
lo que necesitas medir es simplemente cuanto tiempo demora en realizar
la tarea necesaria, y aumentar CPU de ser necesario.

- En tu computador, te das cuenta que la carga es muy alta cuando no
  debería serlo.
 - Tienes procesos que no controlas peleando por CPU, en este caso paras
todos los procesos tuyos y con TOP puedes ver que otros procesos se
están ejecutando en este momento.

Debido a la manera en que funciona TOP (en particular el muestreo de uso
de CPU), las únicas medidas realmente confiables son de 0% y 100%, las
que corresponden a un proceso durmiendo y uno ejecutándose respectivamente.

Esto es así porque en un instante de muestreo (se muestrea en los momentos
en que el S.O. decide cambiar de tarea en ejecución), sólo sabes que una
tarea determinada ocupó la CPU por el slot de tiempo recién terminado.

Y como la interacción entre las tareas es compleja, puede suceder que
una tarea *nunca* termine su slot de tiempo, por lo que nunca se va a
contabilizar.

Versiones modernas de Linux usan distintas eurísticas en el scheduler
para determinar el uso de CPU de casa tarea, y así distribuir la CPU
entre las tareas de manera más eficiente. Esto produce que la medición
de CPU por tarea se desvíe de la medición de uso de CPU total, pero
ninguna de las dos es realmente mejor que la otra, simplemente
miden cosas ligeramente distintas.

Una manera de ver esto es con un programa que latere rápidamente
entre usar CPU y dormir por un intervalo corto de tiempo, la medición
de uso de CPU por tarea será mucho más alta que la medición global.

Para muestra, ver el programa adjunto, puedes probar, por ejemplo,
 testtop 10 15, el primer parámetro es el tiempo que duerme
en microsegundos, el segundo el número de cuentas en un loop que
no hace nada.

Daniel.

- testtop.c -
#include unistd.h
#include stdlib.h

int main(int argc, char **argv)
{
int st = atoi(argv[1]), lp = atoi(argv[2]);
while(1)
{
int i;
for(i=0;ilp;i++);
usleep(st);
}
return 0;
}
--


Re: Significado de %CPU reportado por top

2009-02-04 Por tema Aldrin Martoq
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 %MEMTIME+  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 %MEMTIME+  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 amar...@dcc.uchile.cl
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/


signature.asc
Description: This is a digitally signed message part


Re: Significado de %CPU reportado por top

2009-02-04 Por tema Alejandro Weinstein
2009/2/3 Aldrin Martoq amar...@dcc.uchile.cl:
 Y esta es una captura de top
 Tasks: 128 total,   2 running, 126 sleeping,   0 stopped,   0 zombie
 Cpu(s): 13.5%us,  1.8%sy,  0.0%ni, 84.7%id,  0.0%wa,  0.0%hi,  0.0%si,  
 0.0%st
 Mem:   2062952k total,   934044k used,  1128908k free,29032k buffers
 Swap:  2008084k total,0k used,  2008084k free,   335764k cached

 Presiona 1 y arriba te dara el detalle de cada CPU...


   PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
 10030 ajw   20   0 67632  23m 7360 S   22  1.2   0:09.54 python

 Tu programa es multithread y ocupa ~ el 13% del sistema global...
 Presiona I y veras lo que quieres.

OK. Viendo el detalle por CPU los numeros tienen mas sentido. Python y
firefox suman 33%, que corresponde al uso de CPU1. Xorg y
gnome-terminal suman 8. Esto es mas que el uso de CPU0. Pero puede ser
un problema de muestreo tal vez, o no?

Tambien agregue el campo P, que indica en que procesador esta
corriendo el proceso. No calza mucho, ya que muestra a python en el
CPU0, que tienen solo 3%. Se puede explicar esto por como top muestrea
el sistema? Despues de todo es una foto de lo que paso el ultimo
segundo, y supongo que en un segundo el proceso puede haberse
ejecutado en distintos CPUs.

Captura de top:

Tasks: 128 total,   1 running, 127 sleeping,   0 stopped,   0 zombie
Cpu0  :  3.0%us,  0.0%sy,  0.0%ni, 97.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  : 33.3%us,  1.9%sy,  0.0%ni, 64.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2062952k total,   922048k used,  1140904k free,59696k buffers
Swap:  2008084k total,0k used,  2008084k free,   331584k cached

  PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  P COMMAND
 7076 ajw   20   0 69972  26m 7364 S   30  1.3   8:53.24 0 python
 5360 root  20   0  292m  25m 8088 S6  1.2   3:37.27 1 Xorg
 6057 ajw   20   0  247m 100m  26m S3  5.0   2:29.63 0 firefox
 6050 ajw   20   0 99.5m  24m  12m S2  1.2   0:06.00 1 gnome-terminal
1 root  20   0  3056 1888  564 S0  0.1   0:01.24 1 init

Alejandro.


Re: Significado de %CPU reportado por top

2009-02-04 Por tema Alejandro Weinstein
2009/2/3 Aldrin Martoq amar...@dcc.uchile.cl:
   PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
 10030 ajw   20   0 67632  23m 7360 S   22  1.2   0:09.54 python

 Tu programa es multithread y ocupa ~ el 13% del sistema global...
 Presiona I y veras lo que quieres.

Como supiste que el programa es multithread? Clarividencia :) ?

Alejandro.


Re: Significado de %CPU reportado por top

2009-02-04 Por tema Alejandro Weinstein
2009/2/4 Alejandro Weinstein alejandro.weinst...@gmail.com:
 OK. Viendo el detalle por CPU los numeros tienen mas sentido

Ahora estoy confundido otra vez. La siguiente es una captura de top,
en una maquina con UNA cpu:

Tasks:  61 total,   2 running,  59 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.3%us,  0.2%sy,  0.0%ni, 99.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:507380k total,87544k used,   419836k free, 5084k buffers
Swap:   385520k total,0k used,   385520k free,34484k cached

  PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
 4370 ajw   20   0  102m 9.9m 4200 S 23.7  2.0   0:47.09 python
 4341 ajw   20   0 14996 4296 2300 S  1.7  0.8   0:03.99 python
1 root  20   0  2844 1696  548 S  0.0  0.3   0:01.57 init

Tengo Cpu0: 0.3%. y uno de los procesos python usando 23.7%.

Como cuadran estos numeros? Significa que el proceso uso el 23.7% del 0.3%?

Alejandro.


Re: Significado de %CPU reportado por top

2009-02-04 Por tema Miguel Oyarzo O.

Alejandro Weinstein escribió:

2009/2/4 Alejandro Weinstein alejandro.weinst...@gmail.com:

OK. Viendo el detalle por CPU los numeros tienen mas sentido


Ahora estoy confundido otra vez. La siguiente es una captura de top,
en una maquina con UNA cpu:

Tasks:  61 total,   2 running,  59 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.3%us,  0.2%sy,  0.0%ni, 99.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:507380k total,87544k used,   419836k free, 5084k buffers
Swap:   385520k total,0k used,   385520k free,34484k cached

  PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
 4370 ajw   20   0  102m 9.9m 4200 S 23.7  2.0   0:47.09 python
 4341 ajw   20   0 14996 4296 2300 S  1.7  0.8   0:03.99 python
1 root  20   0  2844 1696  548 S  0.0  0.3   0:01.57 init

Tengo Cpu0: 0.3%. y uno de los procesos python usando 23.7%.

Como cuadran estos numeros? Significa que el proceso uso el 23.7% del 0.3%?



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.


Atte

Miguel Oyarzo O.
Austro Internet S.A.
Punta Arenas


Re: Significado de %CPU reportado por top

2009-02-04 Por tema Alejandro Weinstein
On Thu, Feb 5, 2009 at 5:06 AM, Miguel Oyarzo O. ad...@aim.cl wrote:
 Alejandro Weinstein escribió:

 2009/2/4 Alejandro Weinstein alejandro.weinst...@gmail.com:

 OK. Viendo el detalle por CPU los numeros tienen mas sentido

 Ahora estoy confundido otra vez. La siguiente es una captura de top,
 en una maquina con UNA cpu:

 Tasks:  61 total,   2 running,  59 sleeping,   0 stopped,   0 zombie
 Cpu0  :  0.3%us,  0.2%sy,  0.0%ni, 99.4%id,  0.0%wa,  0.0%hi,  0.0%si,
  0.0%st
 Mem:507380k total,87544k used,   419836k free, 5084k buffers
 Swap:   385520k total,0k used,   385520k free,34484k cached

  PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
  4370 ajw   20   0  102m 9.9m 4200 S 23.7  2.0   0:47.09 python
  4341 ajw   20   0 14996 4296 2300 S  1.7  0.8   0:03.99 python
1 root  20   0  2844 1696  548 S  0.0  0.3   0:01.57 init

 Tengo Cpu0: 0.3%. y uno de los procesos python usando 23.7%.

 Como cuadran estos numeros? Significa que el proceso uso el 23.7% del
 0.3%?


 0.3% es el 30% de ocupacion de la CPU sumando todos los procesos durante ese
 refresco de pantalla.

De donde sale el 30%?



Re: Significado de %CPU reportado por top

2009-02-04 Por tema Aldrin Martoq
On Thu, 2009-02-05 at 13:06 +0100, Miguel Oyarzo O. wrote:
 Alejandro Weinstein escribió:
  Ahora estoy confundido otra vez. La siguiente es una captura de top,
  en una maquina con UNA cpu:
  Tasks:  61 total,   2 running,  59 sleeping,   0 stopped,   0 zombie
  Cpu0  :  0.3%us,  0.2%sy,  0.0%ni, 99.4%id,  0.0%wa,  0.0%hi,  0.0%si,  
  0.0%st
  Mem:507380k total,87544k used,   419836k free, 5084k buffers
  Swap:   385520k total,0k used,   385520k free,34484k cached
PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
   4370 ajw   20   0  102m 9.9m 4200 S 23.7  2.0   0:47.09 python
   4341 ajw   20   0 14996 4296 2300 S  1.7  0.8   0:03.99 python
  1 root  20   0  2844 1696  548 S  0.0  0.3   0:01.57 init
  Tengo Cpu0: 0.3%. y uno de los procesos python usando 23.7%.
  Como cuadran estos numeros? Significa que el proceso uso el 23.7% del 0.3%?

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

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 %MEMTIME+  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 ...).




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


 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.


-- 
Aldrin Martoq amar...@dcc.uchile.cl
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/


signature.asc
Description: This is a digitally signed message part


Re: Significado de %CPU reportado por top

2009-02-04 Por tema Miguel Oyarzo O.

Alejandro Weinstein escribió:

On Thu, Feb 5, 2009 at 5:06 AM, Miguel Oyarzo O. ad...@aim.cl wrote:

Alejandro Weinstein escribió:

2009/2/4 Alejandro Weinstein alejandro.weinst...@gmail.com:

OK. Viendo el detalle por CPU los numeros tienen mas sentido

Ahora estoy confundido otra vez. La siguiente es una captura de top,
en una maquina con UNA cpu:

Tasks:  61 total,   2 running,  59 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.3%us,  0.2%sy,  0.0%ni, 99.4%id,  0.0%wa,  0.0%hi,  0.0%si,
 0.0%st
Mem:507380k total,87544k used,   419836k free, 5084k buffers
Swap:   385520k total,0k used,   385520k free,34484k cached

 PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
 4370 ajw   20   0  102m 9.9m 4200 S 23.7  2.0   0:47.09 python
 4341 ajw   20   0 14996 4296 2300 S  1.7  0.8   0:03.99 python
   1 root  20   0  2844 1696  548 S  0.0  0.3   0:01.57 init

Tengo Cpu0: 0.3%. y uno de los procesos python usando 23.7%.

Como cuadran estos numeros? Significa que el proceso uso el 23.7% del
0.3%?


0.3% es el 30% de ocupacion de la CPU sumando todos los procesos durante ese
refresco de pantalla.


De donde sale el 30%?


Olvidate de mi respuesta anterior, me confundi con otra cosa

Ese indicador solo te muestra el tiempo que la CPU uso en los procesos 
de usuarios (los que consumen algo relevante de CPU)


Saludos,

Miguel Oyarzo O.
Austro Internet S.A.
Punta Arenas





Re: Significado de %CPU reportado por top

2009-02-04 Por tema Daniel Serpell
Hola!

El Wed, Feb 04, 2009 at 11:13:13AM -0700, Alejandro Weinstein escribio:
 
[...]
 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?
 

Si quieres saber si esta muy cargado, el uso de CPU es irrelevante.

Un ejemplo: si quieres saber si un estudiante tiene una carga de ramos
muy grande, ¿te sirve mirar si en este minuto esta ocupado?. Claramente,
en el momento que muestrees, o bien el estudiante está en clases (con un
uso de casi 100% ojalá) o no (con un uso de 0%). Por más que lo desee,
no puede está haciendo más del 100% en un momento determinado.

Lo que debes mirar, es el tamaño de la cola de cosas por hacer promediado
en el tiempo... osea, el promedio de cuantas cosas por hacer tienes.

Esta medición, en un sistema Unix, la entregan las columnas load average
que aparecen al principio en el top, o se pueden obtener con uptime.

Los números corresponden a la carga promedio de 1, 5 y 15 minutos.

Si la carga promedio es mayor que el número de CPUs de tu computador,
significa que estas con sobrecarga.

Daniel.



Re: Significado de %CPU reportado por top

2009-02-04 Por tema Aldrin Martoq
On Wed, 2009-02-04 at 11:13 -0700, Alejandro Weinstein wrote: 
 2009/2/4 Aldrin Martoq amar...@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 amar...@dcc.uchile.cl
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/


signature.asc
Description: This is a digitally signed message part


Significado de %CPU reportado por top

2009-02-03 Por tema Alejandro Weinstein
Hola:

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.

Y esta es una captura de top

Tasks: 128 total,   2 running, 126 sleeping,   0 stopped,   0 zombie
Cpu(s): 13.5%us,  1.8%sy,  0.0%ni, 84.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2062952k total,   934044k used,  1128908k free,29032k buffers
Swap:  2008084k total,0k used,  2008084k free,   335764k cached

  PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
10030 ajw   20   0 67632  23m 7360 S   22  1.2   0:09.54 python
 5322 root  20   0  293m  27m 8436 S6  1.4   2:40.33 Xorg
 5934 ajw   20   0  249m 127m  26m S2  6.3   2:58.27 firefox
 4914 avahi 20   0  3404 1960 1244 S1  0.1   0:08.06 avahi-daemon
 5819 ajw   20   0 21232 8424 6944 R1  0.4   0:21.72 multiload-apple
1 root  20   0  3056 1884  564 S0  0.1   0:01.24 init

Como ven, aparece Cpu(s): 13.5%us, y para el proceso 10030 (python),
aparece %CPU 22. Segun la definicion del manual, entiendo que en los
ultimos 3 segundos (periodo de actualizacion de top), el 13.5% del
periodo fue usado por la CPU por programas de usuario, y de ese 13.5%,
el 22% fue usado por python. Sin embargo mi interpretacion no cuadra,
porque la suma de todos los procesos no suma 100, sino 32.

Es posible que el 68% faltante este repartido entre los otros
procesos, y que aparezca como 0 porque fue truncado?
Hay otra explicacion?
El tener dos nucleos afecta en algo?

Saludos,
Alejandro.


Re: Significado de %CPU reportado por top

2009-02-03 Por tema Germán Póo-Caamaño
On Tue, 2009-02-03 at 15:41 -0700, Alejandro Weinstein wrote:
 Hola:
 
 Estoy un poco confundido con el significado de %CPU reportado por top.
 La siguiente es la definicion del manual:
 [...]
 Como ven, aparece Cpu(s): 13.5%us, y para el proceso 10030 (python),
 aparece %CPU 22. Segun la definicion del manual, entiendo que en los
 ultimos 3 segundos (periodo de actualizacion de top), el 13.5% del
 periodo fue usado por la CPU por programas de usuario, y de ese 13.5%,
 el 22% fue usado por python. Sin embargo mi interpretacion no cuadra,
 porque la suma de todos los procesos no suma 100, sino 32.
 
 Es posible que el 68% faltante este repartido entre los otros
 procesos, y que aparezca como 0 porque fue truncado?
 Hay otra explicacion?
 El tener dos nucleos afecta en algo?

Aparecen sumados los valores de todas las CPU's.  Si presionas '1'
aparecerán los valores por cada CPU en forma separada.

Del resto no me pronuncio, porque habrá alguien que escribirá una
explicación más entretenida de lo que yo pueda hacerlo.

-- 
Germán Póo-Caamaño
http://www.calcifer.org/



Re: Significado de %CPU reportado por top

2009-02-03 Por tema Juan Manuel Doren

 Es posible que el 68% faltante este repartido entre los otros
 procesos, y que aparezca como 0 porque fue truncado?

o que no se haya usado el 100% de la cpu, los procesos no siempre
estan usando la cpu, pueden estar esperando una lectura del disco o
una respuesta de la red o una entrada de teclado.


Re: Significado de %CPU reportado por top

2009-02-03 Por tema Aldrin Martoq
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_. Si tienes un programa multi-thread ocupando el 100% de 3
CPU's, entonces su % de CPU es 300%.

Si te cambias al modo Slowlaris, se divide por la cantidad de CPU asi
obtienes el porcentaje de CPU relativo al sistema global. Si tienes 4
cpu's y el proceso consume el 100% de 3 CPU's, entonces veras 75%.



 Y esta es una captura de top
 Tasks: 128 total,   2 running, 126 sleeping,   0 stopped,   0 zombie
 Cpu(s): 13.5%us,  1.8%sy,  0.0%ni, 84.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
 Mem:   2062952k total,   934044k used,  1128908k free,29032k buffers
 Swap:  2008084k total,0k used,  2008084k free,   335764k cached

Presiona 1 y arriba te dara el detalle de cada CPU...


   PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
 10030 ajw   20   0 67632  23m 7360 S   22  1.2   0:09.54 python

Tu programa es multithread y ocupa ~ el 13% del sistema global...
Presiona I y veras lo que quieres.


-- 
Aldrin Martoq amar...@dcc.uchile.cl
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/


signature.asc
Description: This is a digitally signed message part


Re: Significado de %CPU reportado por top

2009-02-03 Por tema Miguel Oyarzo O.

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.



 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.


Saludos,

Miguel Oyarzo O.
Austro Internet S.A.
Punta Arenas