Supongo que la pregunta es, ¿podría calcular de alguna manera el porcentaje de utilización de la CPU simplemente leyendo el / proc / stat una vez?
# head -1 /proc/stat
cpu 67891300 39035 6949171 2849641614 118251644 365498 2341854 0
Estoy pensando en resumir las columnas excepto el IOWait (estaba leyendo en alguna parte que se cuenta en inactivo) y eso me daría el 100% y cada columna individual podría convertirse en porcentaje por (column / 100_percent) * 100.
- usuario: procesos normales que se ejecutan en modo usuario
- agradable: procesos vistos que se ejecutan en modo de usuario
- sistema: procesos que se ejecutan en modo kernel
- inactivo: pulgares giratorios
- iowait: esperando que se complete la E / S
- irq: interrupciones de servicio
- softirq: mantenimiento de softirqs
- robar: espera involuntaria
- invitado: ejecutar un invitado normal
- guest_nice: ejecutar un invitado ingenioso
¿Es este un enfoque viable o estoy totalmente fuera de la pista?
Si quieres un revestimiento, puede verse así:
El resultado:
97.17000000000000000000
Cómo funciona:
produce
( 1055057784 - 1055058055 )/100
entonces este avance de línea a bc. Tendrá algo así-7.84000000000000000000
, luego envuélvalo100-$(value)
y alimente a bc nuevamenteAllí:
sleep #
- 1 segundo de retraso, si cambia este valor, el resultado intermedio se debe dividir entre la cantidad de segundos.$5
- 5to campo, segúnman proc
y http://www.linuxhowtos.org/System/procstat.htmAvísame si esto no funciona para ti.
fuente
O si está satisfecho con solo dos dígitos después del punto awk, puede hacerlo todo de una manera mucho más simple y legible:
fuente