Podobne do pytania Jak zalogować obciążenie procesora? , Chciałbym zapisać pamięć procesu.
Proces, który chcę zarejestrować, jest zabijany na zdalnym serwerze i chcę sprawdzić obciążenie procesora oraz zużycie pamięci tuż przed jego zabiciem.
[aktualizacja]
Zarówno schludny mały skrypt Pythona Stefano Palazzo, jak i
Jednowierszowe wartości wyjściowe Michała, które są mniejsze niż top
dla CPU i Mem. Masz pomysł dlaczego?
moc wyjściowa:
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
wypisuje skrypt Pythona Stefano Palazzo:
python memlogger.py 2312
%CPU %MEM
76.00 0.20
76.00 0.20
command-line
cpu-load
logging
memory-usage
Framester
źródło
źródło
ps
może wyjaśniać, dlaczego może się różnić odtop
: stackoverflow.com/questions/131303/...Odpowiedzi:
Możesz utworzyć jednowarstwowy w powłoce:
aby zarejestrować proces przy pomocy pid = 123 wystarczy:
lub aby zobaczyć i zapisać dziennik do pliku:
Jeśli chcesz rejestrować inne dane, zmień
-o {this}
opcje. Informacjeman ps
na temat dostępnych parametrów można znaleźć w sekcji „STANDARDOWE SPECYFIKATORY FORMATU”. Jeśli chcesz mieć inną rozdzielczość czasową, zmieńsleep {this}
funkcjęlogpid()
.źródło
Jeśli dokładnie śledzisz
top
statystyki, możesz uruchomićtop
w trybie wsadowym, określając pid procesu, którego szukasz. Biorąc przykład z tej strony ( http://www.dedoimedo.com/computers/linux-cool-hacks.html ), jeśli wpiszeszBędziesz mieć „top działający w trybie wsadowym (-b). Będzie odświeżał się co 10 sekund, zgodnie z flagą opóźnienia (-d), dla całkowitej liczby 3 iteracji (-n). Wyjście zostanie wysłane do pliku. ” W tym
-p
możesz określićpid
proces, którego szukasz. To oczywiście zwróci więcej niż tylko procesor i pamięci RAM, ale będzie zawierało te pola. W moim przypadku na przykład dostałbym następujące informacje podczas monitorowania pid 9189 przy użyciutop -b -d 10 -n 3 -p 9189 >> ~/top-file
:źródło
watch
nie wydaje mi się idealny do tego: superuser.com/questions/281347/filtering-top-command-outputTen prosty skrypt Pythona powinien robić, co chcesz:
Najpierw musisz znaleźć identyfikator procesu programu, który chcesz monitorować, a następnie możesz uruchomić skrypt z PID jako argumentem:
Wydrukuje użycie procesora i użycie pamięci RAM w procentach dwa razy na sekundę:
Następnie możesz przekierować dane wyjściowe do pliku, aby później zaimportować go do arkusza kalkulacyjnego (
python log.py 9391 > firefox_log.txt
) i zaimportować dane do arkusza kalkulacyjnego, wybierającTab
jako separator.Program kończy pracę, gdy naciśniesz Ctrl + C lub gdy proces zostanie zabity.
źródło