Estoy construyendo un monitor de recursos basado en web para Linux.
Por ahora estoy deseando usar:
dfpara leer el estado de uso del disco duro/proc/meminfo(a través del gato) para leer el estado de RAMmpstat(del paquete sysstat) para leer el uso de la CPU
Mientras que la df y /proc/meminfo devuelve los datos casi al instante, mpstat retrasos para el intervalo que especifico, con el valor mínimo aceptado de 1 (en segundos).
¿Hay un lector de uso de la CPU en tiempo real, o hay una manera de hacer mpstat volver "al instante"?
salida de mpstat:
[psycketom@stone ~]# mpstat -P ALL 1 1
Linux 3.5.4-1-ARCH (stone) 03/05/2013 _x86_64_ (1 CPU)
11:33:15 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
11:33:16 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
11:33:16 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
Average: all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
Average: 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
linux
arch-linux
resource-monitor
joltmode
fuente
fuente

top¿No es adecuado para sus propósitos por alguna razón?STDOUT, que podría grep.topEncuestas continuamente.Respuestas:
Puedes usar
topEn modo batch y una única iteración:Yo también usaría
freeen lugar de analizarmeminfo.Otra forma es usar
ps, agregue el% de CPU de cada proceso y divida por la cantidad de núcleos que tiene su máquina:Si su sistema tiene solo un núcleo, la secuencia de comandos anterior fallará, produciendo:
Para hacerlo funcionar, cambiar.
k/(cores * cpus)ak/(cores==""?1:cores * cpus). Esto comprobará si elcoresLa variable no está vacía, si lo está,1será utilizado en su lugar.fuente
freepunta, y parece que voy a seguir contopentonces. ¡Aceptado!topNo refleja el uso real. Realicé alrededor de 60 solicitudes web al servidor, y todas se mantuvieron en 97.7% de inactividad, aunque la tabla mostró un uso de 5.8% paratop. Quiero decir, mostró 97.7% en el encabezado.%Cpu(s): 1.5 us, 0.6 sy, 0.1 ni, 97.7 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st. ¿Tengo que leer el uso total de otra parte o debo calcular mi final?5.8%uso de un soltero núcleo para la parte superior. Los porcentajes son para cada núcleo individual. Así que sifooestá tomando el 40% de un solo núcleo de una máquina de 2 núcleos,topMostrará40%parafoono20%como se podría esperar. También vea mi respuesta actualizada para otra forma de obtener el uso real.k/(cores==""?1:cores * cpus)arreglado el problema