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.