ver uso top que procesos proceso porcentaje memoria mas determinar consumen consume comando linux shell memory-management cpu-usage

top - ¿Recuperar el uso de la CPU y la memoria de un solo proceso en Linux?



ver procesos que consumen mas memoria linux (14)

Quiero obtener el uso de la CPU y la memoria de un único proceso en Linux: conozco el PID. Con suerte, puedo obtenerlo cada segundo y escribirlo en un archivo CSV usando el comando ''mirar''. ¿Qué comando puedo usar para obtener esta información de la línea de comandos de Linux?


(Si está en MacOS 10.10, pruebe la opción -c acumulativa de la parte superior:

top -c a -pid PID

(Esta opción no está disponible en otros linux, se intentó con Scientific Linux el6 y RHEL6)


Arriba enumera la CPU superior y el proceso de consumo de memoria

ps axo %cpu,%mem,command | sort -nr | head


Como se comentó en la respuesta de caf anterior, ps y en algunos casos, pidstat le proporcionará el promedio de por vida del pCPU. Para obtener resultados más precisos, use la parte superior. Si necesita ejecutar top una vez que puede ejecutar:

top -b -n 1 -p <PID>

o para datos solo de proceso y encabezado:

top -b -n 1 -p <PID> | tail -3 | head -2

sin encabezados:

top -b -n 1 -p <PID> | tail -2 | head -1


Para obtener el uso de la memoria de solo su aplicación (a diferencia de las bibliotecas compartidas que utiliza, debe usar la interfaz smaps de Linux). Esta respuesta lo explica bien .


Puede obtener los resultados por el nombre del proceso utilizando

ps -C chrome -o %cpu,%mem,cmd

la opción -C permite usar el nombre del proceso sin saber que es pid.


Puede usar top -b y grep el pid que desea (con la bandera -b ejecuta en modo batch), o también use el indicador -p y especifique el pid sin usar grep.


Todas las respuestas aquí muestran solo el porcentaje de memoria para el PID.

Aquí hay un ejemplo de cómo obtener el uso de la memoria rss en KB para todos los procesos de Apache, reemplace "grep apache" con "grep PID" si solo quiere ver un PID específico:

watch -n5 "ps aux -y | grep apache | awk ''{print /$2,/$6}''"

Esto imprime:

Every 5.0s: ps aux -y | grep apache | awk ''{print $2,$6}'' Thu Jan 25 15:44:13 2018 12588 9328 12589 8700 12590 9392 12591 9340 12592 8700 12811 15200 15453 9340 15693 3800 15694 2352 15695 1352 15697 948 22896 9360

Con CPU%:

watch -n5 "ps aux -y | grep apache | awk ''{print /$2,/$3,/$6}''"

Salida:

Every 5.0s: ps aux -y | grep apache | awk ''{print $2,$3,$6}'' Thu Jan 25 15:46:00 2018 12588 0.0 9328 12589 0.0 8700 12590 0.0 9392 12591 0.0 9340 12592 0.0 8700 12811 0.0 15200 15453 0.0 9340 15778 0.0 3800 15779 0.0 2352 15780 0.0 1348 15782 0.0 948 22896 0.0 9360


Una variante de la respuesta de caf : top -p <pid>

Esto actualiza automáticamente el uso de la CPU por lo que es bueno para la supervisión.


Utilice pidstat (desde sysstat - Refer Link ).

por ejemplo, para controlar estos dos ID de proceso (12345 y 11223) cada 5 segundos de uso

$ pidstat -h -r -u -v -p 12345,11223 5


Lanzar un programa y monitorearlo

Este formulario es útil si desea comparar un ejecutable fácilmente:

topp() ( $* &>/dev/null & pid="$!" trap '':'' INT echo ''CPU MEM'' while sleep 1; do ps --no-headers -o ''%cpu,%mem'' -p "$pid"; done kill "$pid" ) topp ./myprog arg1 arg2

Ahora cuando presiona Ctrl + C, sale del programa y deja de monitorear. Muestra de salida:

CPU MEM 20.0 1.3 35.0 1.3 40.0 1.3

Probado en Ubuntu 16.04.


ps -p <pid> -o %cpu,%mem,cmd

(Puede dejar "cmd" pero eso puede ser útil para la depuración).

Tenga en cuenta que esto da un uso promedio de la CPU del proceso durante el tiempo que se ha estado ejecutando.


ps aux | awk ''{print $4"/t"$11}'' | sort | uniq -c | awk ''{print $2" "$1" "$3}'' | sort -nr

o por proceso

ps aux | awk ''{print $4"/t"$11}'' | sort | uniq -c | awk ''{print $2" "$1" "$3}'' | sort -nr |grep mysql


ps aux|awk ''{print $2,$3,$4}''|grep PID

donde la primera columna es el PID, uso de la CPU de la segunda columna, uso de la memoria de la tercera columna.


ps axo pid,etime,%cpu,%mem,cmd | grep ''processname'' | grep -v grep

PID - ID del proceso

etime - Proceso en ejecución / Duración en vivo

% cpu - uso de la CPU

% mem - Uso de la memoria

cmd - Comando

Reemplace el nombre de proceso con el proceso que desee rastrear, mysql nginx php-fpm, etc.