ver uso sistema procesadores procesador para informacion comando caracteristicas linux bash unix cpu

sistema - Cómo obtener el uso general de la CPU(por ejemplo, 57%) en Linux



ver uso cpu linux (5)

Me pregunto cómo puede obtener un uso de la CPU del sistema y presentarlo en% (en bash), por ejemplo

Muestra de salida:

57%

Si en el caso hubiera más de 1 núcleo, sería bueno si se pudiera calcular un porcentaje promedio


Bien podría arrojar una respuesta real con mi solución, que fue inspirada por Peter Liljenberg:

$ mpstat | awk ''$12 ~ /[0-9.]+/ { print 100 - $12"%" }'' 0.75%

Esto usará awk para imprimir 100 menos el campo 12 (inactivo), con un signo de porcentaje después de él. awk solo hará esto para una línea donde el 12º campo solo tiene números y puntos ( $12 ~ /[0-9]+/ ).


EDITADO: noté que en la respuesta de otro usuario,% inactivo era el campo 12 en lugar del campo 11. El awk se ha actualizado para dar cuenta de que el campo% inactivo es variable.

Esto debería obtener el resultado deseado:

mpstat | awk ''$3 ~ /CPU/ { for(i=1;i<=NF;i++) { if ($i ~ /%idle/) field=i } } $3 ~ /all/ { print 100 - $field }''

Si desea un redondeo de entero simple, puede usar printf:

mpstat | awk ''$3 ~ /CPU/ { for(i=1;i<=NF;i++) { if ($i ~ /%idle/) field=i } } $3 ~ /all/ { printf("%d%%",100 - $field) }''


Eche un vistazo a cat /proc/stat

grep ''cpu '' /proc/stat | awk ''{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}''

EDIT por favor lea los comentarios antes de copiar y pegar esto o usar esto para cualquier trabajo serio. Esto no fue probado ni usado, es una idea para las personas que no desean instalar una utilidad o para algo que funciona en cualquier distribución. Algunas personas piensan que se puede "obtener-instalar" cualquier cosa.


Pruebe mpstat desde el paquete sysstat

> sudo apt-get install sysstat Linux 3.0.0-13-generic (ws025) 02/10/2012 _x86_64_ (2 CPU) 03:33:26 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 03:33:26 PM all 2.39 0.04 0.19 0.34 0.00 0.01 0.00 0.00 97.03

Luego, algunos cut o grep para analizar la información que necesita:

mpstat | grep -A 5 "%idle" | tail -n 1 | awk -F " " ''{print 100 - $ 12}''a


Puedes probar:

top -bn1 | grep "Cpu(s)" | / sed "s/.*, */([0-9.]*/)%* id.*//1/" | / awk ''{print 100 - $1"%"}''