[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ¿Comando para saber simplemente la carga instantánea de CPU?



El mié, 15-08-2007 a las 14:43 +0200, Iñaki Baz Castillo escribió:
> El Miércoles, 15 de Agosto de 2007, Gonzalo Rivero escribió:
> > El 15/08/07, Iñaki Baz Castillo <ibc.listas@aliax.net> escribió:
> > > Hola, ojalá sea una tontería lo que pregunto. Necesito un simple comando
> > > que me dé en dicho instante la carga de CPU, sin más.
> > >
> > > No me vale "top" pues quiero simplemente obtener el valor de carga de CPU
> > > para copiarlo a un fichero y demás.
> > >
> > > Sé que me valdría "uptime | cut/sed..." pero confiaba en que hubiese
> > > "algo" que no requiriese de más operaciones.
> >
> > no se si es lo que buscás... porque no se que significan esos números
> > (y tampoco me preocupé por entenderlos jejeje)
> > gonzalo@trece:~$ cat /proc/loadavg
> > 0.32 0.17 0.15 1/84 2988
> 
> Vaya, eso no lo había visto.
> 
> Es la misma info que si haces "uptime" o "top" (arriba a la dcha), es decir, 
> la carga de CPU ahora, la media desde hace un minuto y la media desde hace 5 
> minutos (¿o eran otros intervalos?).
> 
> Gracias.

¿carga de CPU o carga del sistema? Si lo que buscas es la "carga del
sistema", ese puede ser el comando que necesitas, pero mira en el 

LANG=C man proc
/loadavg

(lo de man=C es para leer, una página tres años más nueva, que la que
esta en argentino)

A ver si realmente es lo que buscas... (número de trabajos, en estado
'R' o 'D', es decir "run" o esperando poder hacer I/O de disco, en este
instante y hace 1, 5 y 15 minutos)

Yo creo que lo que preguntabas (carga de CPU), te refieres a los
porcentajes que se ven en top (p.ej. el % de idle)

Para la carga de la cpu, EMHO, no hay un programa concreto que devuelva
__solo__ esos valores, tendrías que filtrar, p.ej. la salida
de /proc/stat, o puede servirte las últimas columnas de:

vmstat -n1

Que si te dicen el % de cpu runing, idle, etc... (man)

Total, si lo vas a leer desde otro pograma, tendrás que trabajar con
columnas de cualquier manera.

Si quieres algo más detallado que las 4 últimas columnas de vmstat, y
multiprocesador, puedes probar mpstat (del paquete systat):

[root][imac]:/home/inigo # mpstat -P ALL
Linux 2.6.18-4-686 (imac)       15/08/07

13:41:12 CPU %user %nice %sys %iowait %irq  %soft %steal %idle  intr/s
13:41:12 all 0,98  0,00  0,40  5,15   0,07  0,29  0,00   93,11  364,85
13:41:12 0   0,86  0,00  0,49  5,70   0,14  0,40  0,00   92,41  342,34
13:41:12 1   1,11  0,00  0,32  4,59   0,00  0,18  0,00   93,80  22,51

O del mismo paquete, iostat -c

[root][imac]:/home/inigo # iostat -c
Linux 2.6.18-4-686 (imac)       15/08/07

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,98    0,00    0,74    4,80    0,00   93,48

Pero estás en lo mismo, son columnas y lineas a tratar. Si quieres que
iostat -c no te devuelva más que la ultima linea, tendrías que comenar
un par de líneas de iostat.c y compilar, creo que sale más a cuenta un
pequeño script, no lleva más de una línea hacerlo, ¿qué más da usar un
programa externo que un pequeño script?. Si es por optimizar, no debe
ser muy difícil hacer un programa en C que devuelva solo la carga de
CPU, usando stat.h y printf.

Suerte




Reply to: