Sabemos que top
es un comando para obtener el uso de la CPU en Linux y otras formas incluyen
cat /proc/stat
cuál es utilizado por top.
¿Cuáles son otros métodos para obtener el uso de la CPU en la línea de comandos de Linux?
Escenario de caso de uso: la salida de este comando será utilizada por un script para registrar el uso de la CPU continuamente. top
y /proc/stat
dar un uso detallado que es difícil de registrar. ¿Hay alguna manera más fácil de obtener la información de la CPU?
linux
command-line
fasil
fuente
fuente
sed
el resultado si solo desea el valor.top
y el otro da un comando muy útil. No es un uso de X, ¿qué hay de ti? pregunta, pero una pregunta ¿Cómo hago X ? Votación para reabrir.Respuestas:
Como otros han dicho, la mejor manera es probablemente
top
. Necesita un pequeño ajuste y un poco de análisis, pero puede obtenerlo para darle el uso actual de la CPU como porcentaje.top
divide el uso de la CPU entre el usuario, los procesos del sistema y losnice
procesos, queremos la suma de los tres. Por lo tanto, podemos ejecutartop
enb
modo atch que nos permite analizar su salida. Sin embargo, como se explica aquí , la primera iteración detop -b
devuelve los porcentajes desde el arranque, por lo tanto, necesitamos al menos dos iteraciones (-n 2
) para obtener el porcentaje actual. Para acelerar las cosas, puede configurar eld
elay entre iteraciones en0.01
. Finalmente, ustedgrep
usa la línea que contiene los porcentajes de CPU y luego la usagawk
para sumar usuarios, sistemas y procesos agradables:Pensé que también podría obtener esta información
ps -o pcpu ax
agregando el% de uso de cada proceso en ejecución. Desafortunadamente, como se explica aquí ,ps
"devuelve el porcentaje de tiempo dedicado a la ejecución durante toda la vida útil de un proceso", que no es lo que necesita.EDITAR
Según su comentario, su versión de
top
es diferente a la mía y debería usar esto en su lugar:Y, para evitar problemas con la localización, configure la configuración regional en C:
fuente
sar
Es la forma definitiva de hacerlo. Entonces, por ejemplo,sar -u
generará algo como esto:No dice qué Linux usa, pero para CentOS / RedHat necesita instalar el
sysstat
paquete, y creo que es lo mismo en Debian / Ubuntu.También puede usar sar para recopilar estadísticas ad hoc :
Reunirá estadísticas cada 60 segundos 600 veces, por lo que 600 minutos.
fuente