¿Cómo mostrar los cinco principales procesos consumidores de CPU con ps?
101
¿Por qué usarlo ps
cuando puedes hacerlo fácilmente con el top
comando?
Si debe usar ps
, intente esto:
ps aux | sort -nrk 3,3 | head -n 5
Si quieres algo que sea realmente 'top'esq con actualizaciones constantes, usa watch
watch "ps aux | sort -nrk 3,3 | head -n 5"
ps aux | sort -nrk 3,3 | head -n 5
top
funciona realmente.top
lee la lista de procesos y mostrar el resultado por sí solo sin la tubería a cualquier otro procesoLa respuesta correcta es :
Por lo tanto, puede especificar columnas sin interferir con la ordenación.
Ex:
Nota para MAC OS X : en Mac OS X,
ps
no reconoce--sort
, pero ofrece-r
ordenar por el uso actual de la CPU. Por lo tanto, para Mac OS X puede usar:fuente
bash
(x2, ohead
también)ps
...sort
, el segundo muestra cómo especificar columnas sin interferir con la ordenación. Al explicar algo ... siempre es mejor ser conciso y explicar una cosa a la vez.Dependiendo de sus necesidades, puede encontrar esto un poco más legible:
salida de muestra:
(los campos son% CPU, PID, USUARIO, COMANDO)
fuente
No creo que
ps
sea lo que estás buscando. ¿Has mirado la salida detop
?Si tiene GNU-Top, intente usar su modo por lotes para escupir una lista de procesos ordenada por uso de CPU y usar head / tail para obtener las 5 primeras líneas (los primeros 8 son encabezados):
La parte superior de BSD parece comportarse de manera diferente y no tiene un modo no interactivo, así que use una de las otras
ps
soluciones basadas.fuente
top -o cpu -n 5
una forma de lograr lo mismo. ¿Alguien sabe? Mitop
es diferente a tutop
.-o
y-n
establece la cantidad de veces que actualiza la pantalla antes de salir.top
no parece tener un modo por lotes, lo cual es bastante limitante. Debe haber alguna forma de canalizartop
otros comandos. Investigaré un poco.top
funcionó como se describe esta tarde. Salud.El revestimiento más rápido que he encontrado para esto (nota 6 porque el encabezado se suma):
fuente
Tenga en cuenta que las versiones actuales de ps tienen la capacidad de clasificación dentro de ellos, en función de los códigos de campo (que figuran en la página de manual de ps). El código de campo para el uso del procesador es "c". Puede usar
--sort c
al final de un comando ps, por ejemplops aux --sort c
Esto colocará el proceso usando la mayor cantidad de CPU al final de la lista. Invierta el orden de la lista agregando un signo menos al código de campo utilizado para ordenar, por ejemplo
ps aux --sort -c
fuente
Para agregar un punto a otras respuestas valiosas, prefiero:
También imprime el encabezado, lo cual es bueno.
Aquí
k
es idéntico--sort
yc
especifica el campo de uso de la CPU (alias%cpu
) para la ordenación, mientras que-
es para la ordenación inversa.Es posible añadir más especificadores separadas por
,
, otros especificadores posibles son:%mem
,args
,bsdstart
,pid
,gid
,uid
... donde puede encontrar una lista completa de los especificadores de formato ESTÁNDAR sección de la página hombre. Por ejemplo:imprimiría 10 procesos con el ID de grupo más alto, ordenados internamente por uso de memoria.
fuente
La herramienta de línea de comandos
ps
tiene su propia opción de clasificación, por lo que prefiero:Puede agregar las columnas que desee. Vea qué otras opciones están disponibles en la
ps
página del manual.fuente
top
en Mac OS X tiene una opción de modo de registro en forma detop -l numberOfSamples
(que parece ser el equivalente al modo por lotes de GNUtop
). Sin embargo, es necesario tener al menos dos muestras porque "la primera muestra mostrada tendrá un% de CPU no válido para cada proceso, ya que se calcula utilizando el delta entre muestras" (man 1 top
).fuente
top
mostrará lo que está usando tu CPU. Si lo tiene instalado, lehtop
permite un control más detallado, incluido el filtrado por, en su caso, CPU.fuente
Creo que la forma más sencilla de ver los 5 principales procesos que consumen CPU es,
ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -n 5
Para ver los 5 principales procesos que consumen memoria es,
ps -eo pid,comm,%cpu,%mem --sort=-%mem | head -n 5
Dónde,
-e
: Esta bandera se usa para seleccionar todo el proceso-o
: Este indicador se usa para formatear como definido por el usuario.pid
: Este argumento se usa para mostrar pidcomm
: Este argumento se usa para mostrar solo el nombre del comando. Para obtener el uso completo del comandoargs
,cmd
ocommand
%cpu
: Este argumento muestra el porcentaje de utilización de la CPU del proceso en formato "##. #". Aquípcpu
también se puede utilizar.%mem
: Este argumento muestra la proporción del tamaño del conjunto residente del proceso con respecto a la memoria física en la máquina, expresada como un porcentaje. Aquípmem
también se puede utilizar.--sort
: Especifique el orden de clasificación. Después de que=
el-
signo se utiliza para ordenar el valor más alto en la parte superior, donde la opción predeterminada+
es enumerar el orden numérico creciente [es decir, 0 a n].fuente
top -bn1 |sed -n '7,12'p
funciona como un lindo y pequeño revestimiento también.Aunque prefiero usar ps con --sort = X -o X, Y, Z
usando ps puede extraer diferentes estadísticas grep para un proceso O usuario y luego total O promediarlas con una tubería para awk.
fuente