2011-09-02 6 views
10

Quiero ver un determinado proceso en UNIX con el tiempo para ver lo que la memoria el tiempo crece (es un trabajo en ejecución larga)cómo supervisar un uso de memoria procesos con el tiempo - ubuntu

supongo que podría hacer

ps -aux | grep PID 

y ejecutar esto desde cron cada 5 minutos, pero parece que debería haber una manera mejor.

¿Hay alguna manera de usar Sar para hacer esto?

+0

tu pregunta pertenece a ubuntu o superuser –

+0

Estaba pensando en esto, pero es desde el punto de vista de un desarrollador y es un problema de desarrollo, mi proceso está perdiendo memoria, no soy una SA ... Creo que puedo intentarlo por allí, pero parece relevante en ambos ... – Joelio

+2

Duplicado de http://stackoverflow.com/questions/563168/monitor-a-programs-memory-usage-in-linux? También sugiera usar las opciones 'top' con' -p -b -d'. – Iterator

Respuesta

21

Yo uso este:

$ ps -o rss $(pgrep executablename) 

poner esto en un bucle while o usar reloj para su seguimiento a través del tiempo, junto con la cola . También puede convertirlo en un archivo y hacer que gnuplot lo trace y actualizar cada pocos segundos.

+0

Respuesta incorrecta. RSS no es uso de memoria. – poige

+1

@poige, ¿qué quieres decir? - RSS Tamaño de memoria real (conjunto residente) en kilobytes del proceso. Este número es igual a la suma del número de segmentos de trabajo y páginas de segmentos de códigos en tiempos de memoria 4. Recuerde que las páginas de segmentos de códigos se comparten entre todas las instancias del programa en ejecución. Si se están ejecutando 26 procesos de ksh, solo estaría en la memoria una copia de cualquier página del programa ejecutable ksh, pero el comando ps reportaría ese tamaño de segmento de código como parte del RSS de cada instancia del programa ksh. – Joelio

+0

El proceso puede ser intercambiado (paginado) en parte, y su RSS sería menor, en realidad. – poige

Cuestiones relacionadas