Similar a la pregunta ¿Cómo registrar la carga de la CPU? , Me gustaría registrar la memoria de un proceso.
El proceso que deseo iniciar sesión se elimina en un servidor remoto y quiero averiguar la carga de la CPU y el uso de memoria justo antes de que se elimine.
[actualizar]
Tanto el pequeño script de Python de Stefano Palazzo como el
Los valores de salida de una línea de Michał son más pequeños que en top
CPU y Mem. ¿Tienes idea de por qué?
salida superior:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2312 schXX 20 0 1241m 328m 58m S 100 0.3 11:56.68 MATLAB
salida del script de Python de Stefano Palazzo:
python memlogger.py 2312
%CPU %MEM
76.00 0.20
76.00 0.20
command-line
cpu-load
logging
memory-usage
Framester
fuente
fuente
ps
puede diferir detop
: stackoverflow.com/questions/131303/…Respuestas:
Puede crear una línea en el shell:
para registrar el proceso con pid = 123 solo:
o para ver y escribir el registro en el archivo:
Si desea que se registren otros datos, modifique las
-o {this}
opciones. Consulte laman ps
sección "ESPECIFICADORES DE FORMATO ESTÁNDAR" para conocer los parámetros disponibles para usar. Si desea una resolución de tiempo diferente, cambiesleep {this}
de funciónlogpid()
.fuente
Si está exactamente después de las
top
estadísticas, puede ejecutartop
en modo por lotes especificando el pid del proceso que está buscando. Tomando el ejemplo de esta página ( http://www.dedoimedo.com/computers/linux-cool-hacks.html ) si escribióTendría "ejecución superior en modo por lotes (-b). Se actualizará cada 10 segundos, según lo especificado por el indicador de retraso (-d), para un recuento total de 3 iteraciones (-n). La salida se enviará a un archivo ". Incluyendo
-p
puede especificar elpid
proceso que está buscando. Por supuesto, esto devolverá más que puramente CPU y RAM, pero contendrá estos campos. En mi caso, por ejemplo, obtendría lo siguiente al monitorear pid 9189 usandotop -b -d 10 -n 3 -p 9189 >> ~/top-file
:fuente
watch
No me parece ideal para esto: superuser.com/questions/281347/filtering-top-command-outputEste simple script de Python debería hacer lo que quieras:
Primero debe encontrar la identificación del proceso del programa que desea monitorear, luego puede ejecutar el script con el PID como argumento:
Imprimirá el uso de la CPU y el uso de memoria ram en porcentaje dos veces por segundo:
Luego puede redirigir su salida a un archivo para luego importarlo a una hoja de cálculo (
python log.py 9391 > firefox_log.txt
) e importar los datos a una hoja de cálculo seleccionandoTab
como su separador.El programa se cierra cuando presiona Ctrl + C o cuando se cierra el proceso.
fuente