Jak zmierzyć maksymalną pamięć aplikacji działającej w systemie Linux?
Korzystam z tej aplikacji wsadowo, więc nie mogę korzystać z RSS, ponieważ raportuje bieżącą pamięć. Potrzebuję pamięci szczytowej, którą aplikacja zgłosiła na końcu.
VmPeak też nie jest rozwiązaniem, ponieważ zgłasza przydzieloną pamięć, a także nie oblicza z rzeczywistego pamięci RAM, ale także z dysku twardego.
Odpowiedzi:
Oto 2 metody śledzenia szczytowego wykorzystania pamięci procesów.
Syrop
Nie korzystałem z tego narzędzia, ale wygląda na to, czego szukasz. To się nazywa Syropy .
Opis
Przykład
/usr/bin/time -v
Tak, jak na ironię, polecenie czasu GNU może zapewnić maksymalne wykorzystanie pamięci przez proces. Donosi, że pamięć szczytową tak:
Maximum resident set size (kbytes)
.Przykład
Bibliografia
źródło
Chociaż temat jest dość stary, chcę udostępnić inny projekt, który powstał z funkcji jądra Linuksa cgroups.
https://github.com/gsauthof/cgmemtime :
Przykłady użycia to:
źródło
wait4
do wychodzenia z zakończenia procesu w połączeniu z cgroups (memory.max_usage_in_bytes
), co wydaje się mieć sens. Więcej informacji jest dostępnych w pliku README na github.