2011-09-02 13 views
10

chcę oglądać dany proces w systemie UNIX w czasie, aby zobaczyć, co razem pamięć rośnie (swoją długą pracę podczas jazdy)jak monitorować zużycie pamięci procesów w czasie - ubuntu

Myślę, że mógłbym zrobić

ps -aux | grep PID 

i uruchomić to z cron co 5 minut, ale wydaje się, że powinien być lepszy sposób.

Czy jest sposób, w jaki mogę to zrobić za pomocą narzędzia sar?

+0

twoje pytanie należy do ubuntu lub superużytkownika –

+0

Myślałem o tym, ale z punktu widzenia programisty i jego problemu z rozwojem, mój proces jest przecieka pamięć, im nie SA .... Myślę, że mogę spróbować tam, ale wydaje się istotne w obu ... – Joelio

+2

Duplikat http://stackoverflow.com/questions/563168/monitor-a-programs-memory-usage-in-linux? Sugeruj również użycie 'top' z opcjami' -p -b -d'. – Iterator

Odpowiedz

21

używać to:

$ ps -o rss $(pgrep executablename) 

umieścić że w pętli, lub zegarek monitoruje się w czasie w połączeniu ogon. Możesz również dodać go do pliku i utworzyć dla niego wykres gnuplot i odświeżać co kilka sekund.

+0

Niepoprawna odpowiedź. RSS nie jest użyciem pamięci. – poige

+1

@poige, co masz na myśli? - RSS Wielkość pamięci rzeczywistej (zestaw rezydentny) w kilobajtach procesu. Liczba ta jest równa sumie liczby segmentów roboczych i stron segmentów kodu w czasie pamięci 4. Pamiętaj, że strony segmentów kodu są współużytkowane przez wszystkie aktualnie uruchomione instancje programu. Jeśli procesy 26 ksh są uruchomione, tylko jedna kopia dowolnej strony programu wykonywalnego ksh będzie w pamięci, ale polecenie ps zgłosi ten rozmiar segmentu kodu jako część RSS każdej instancji programu ksh. – Joelio

+0

Proces może być częściowo zamieniony (stronicowany), a jego RSS będzie mniejszy. – poige

Powiązane problemy