Chcę monitorować wykorzystanie pamięci przez proces i chcę rejestrować te dane. Czy takie narzędzie istnieje?
memory
monitoring
tshepang
źródło
źródło
Odpowiedzi:
Napisałem skrypt, aby dokładnie to zrobić . Zasadniczo pobiera próbki
ps
w określonych odstępach czasu, aby stworzyć profil określonego procesu. Proces może zostać uruchomiony przez samo narzędzie monitorujące lub może być procesem niezależnym (określonym przez pid lub wzorzec poleceń).źródło
Czasami, gdy pojawia się taka potrzeba, po prostu robię:
To nie jest eleganckie rozwiązanie, ale wykonuje zadanie, jeśli chcesz, aby szybka, surowa wartość zweryfikowała twoją hipotezę.
źródło
grep --line-buffered <process> >>somefile
aby zmusić grep do wypisywania każdej linii bez buforowaniasar
( System Activity Reporter ) z pakietu sysstat jest twoim przyjacielem w takich przypadkach.Innym sposobem byłoby monitorowanie w połączeniu z danymi historycznymi, np. Munin, pnp4nagios, rrdtools, ...
źródło
sar
można skupić się tylko na jednym procesie? głównie wydaje się, że monitoruje system jako całośćpidstat
Polecenia również z pakietu sysstat zapewnia dość ładny interfejs dla statystyk dotyczących jednego procesu raportowania.Oprócz wyżej wymienionego sar, polecam na szczycie . Zapisuje dziennik binarny, który można później przejrzeć, a poza tym pamięć oszczędza wiele innych informacji.
źródło
Możesz spróbować Valgrind .
źródło
Podoba mi się prosta odpowiedź Sridhara, ale rzuciłem własną, zanim wypróbowałem jego:
Jest to w zasadzie przydatne tylko, jeśli chcesz uzyskać uporządkowane dane wyjściowe. Zmień odpowiednio 7274. Również Python 3.5. Coś się zepsuło
_asdict()
, więc użyj Python 2.Plik wyjściowy wygląda następująco:
źródło