Jak mogę śledzić i rejestrować użycie procesora i pamięci na komputerze Mac?

6

Wiem, że mogę używać Monitora aktywności (a także wielu aplikacji innych firm) do monitorowania użycia pamięci RAM i procesora na komputerze Mac. Chcę jednak przechwycić dziennik przez pewien czas, aby móc porównać użycie między procesami bez konieczności robienia zrzutów ekranu itp. Coś podobnego do konsoli:

Process A (5:22 - 5:32)

5:22:01: 2.2% CPU, 5 Threads, 111.1MB Real Mem  
5:22:03: 2.1% CPU, 4 Threads, 90.4MB Real Mem  
...

Jak mogę to osiągnąć?

RSH
źródło

Odpowiedzi:

8

To może nie do końca trafić, ale spróbuj tego:

sar -o ~/output.sar 10 10 

To gromadzi 10 zestawów wskaźników w 10-sekundowych odstępach. Następnie możesz wyodrębnić przydatne informacje z pliku wyjściowego (nawet gdy jest jeszcze uruchomiony), na przykład uzyskasz aktywność dysku na okres próbkowania:

sar -d -f ~/output.sar

Zrób, man saraby dowiedzieć się, jakie są inne opcje.

Edytować:

sar nie robi pamięci, dzięki czemu uzyskasz wolną pamięć w systemie w odstępach dziesięciu sekund:

vm_stat 10 | awk 'NR>2 {gsub("K","000");print ($1+$4)/256000}'

Możesz przekierować to do pliku.

Jeśli potrzebujesz więcej informacji, zapytaj.

Philip Kearns
źródło
2
Nie ma sarpo ostatniej aktualizacji Sierra. Czy jest jakieś inne polecenie niż topi nettop?
SkrewWszystko
1
@SkrewWszystko znalazłem źródło sar, a później spróbuję zbudować je na Sierra: opensource.apple.com/source/system_cmds/system_cmds-643.30.1/...
Philip Kearns
Poinformuj nas o zakończeniu. Dziękuję Ci.
SkrewWszystko
sarskompiluje się wystarczająco łatwo, ale nie kod, który naprawdę działa sadc:, który dostaje błędy łącza. Nie widzę siebie ponownie w krótkim okresie.
Philip Kearns
2

Możesz rejestrować użycie procesora i pamięci przez procesy, ale nie liczbę wątków, za pomocą programu Syrupy w języku Python .

Syrupy to skrypt w języku Python, który regularnie wykonuje migawki pamięci i obciążenia procesora jednego lub większej liczby uruchomionych procesów, aby dynamicznie budować profil wykorzystania zasobów systemowych.

Syropy działa w jednym z dwóch trybów. W pierwszym (domyślnym) trybie monitoruje wykorzystanie zasobów przez proces wynikający z wykonania polecenia określonego przez użytkownika (którym może być dowolnie złożona kombinacja programów i argumentów, które można wywołać z terminala powłoki). W drugim trybie Syrupy monitoruje wykorzystanie zasobów przez uruchomione procesy zewnętrzne, które spełniają określone przez użytkownika kryteria: numer PID (identyfikator procesu) lub ciąg poleceń pasujący do wzorca wyrażenia regularnego.

W obu przypadkach monitorowanie wykorzystania zasobów systemowych odbywa się na podstawie wielokrotnych wywołań polecenia systemowego ps.

W twoim przypadku, rejestrując każdy uruchomiony proces, myślę, że to polecenie zadziałałoby:

syrupy.py --poll-command='.*'
Rory O'Kane
źródło
0

Możesz używać topdanych i przenosić je do awklub grepodczytywać określone informacje, których potrzebujesz.

Sprawdź to tutaj; http://ss64.com/osx/top.html

top jest właściwie podstawowym narzędziem, na którym opiera się Monitor aktywności.

Użytkownik2910293
źródło