Procesy działające w systemie operacyjnym są przydzielane do różnych regionów, które wykorzystują przestrzeń pamięci wirtualnej odwzorowaną na pamięć fizyczną w warstwie abstrakcyjnej. Jądro zachowuje zatem tabelę tłumaczeniową podkreślającą każdy proces, a wszelkie wprowadzone zmiany są aktualizowane w tabeli tłumaczenia. Polecenie PMAP jest potrzebne do uzyskania dostępu do tego miejsca pamięci używanego przez każdy proces, aw tym przewodniku nauczysz się używać polecenia PMAP, aby wyświetlić użycie pamięci przez proces."
Jak używać PMAP
Składnia do użycia PMAP to:
pmap [opcje] PID […]
Dlatego pierwszą rzeczą do zrobienia jest uzyskanie identyfikatora procesu konkretnego procesu i istnieją różne sposoby zdobycia PID. Aby szybko uzyskać PID procesu, użyj PS Aux, a następnie grep nazwę procesu lub użyj opcji PIDOF.
Na przykład, aby uzyskać PID procesu BASH:
1. Za pomocą PS Aux
$ ps aux | Grep Bash
2. Za pomocą PIDOF
$ pidof bash
Za pomocą
PMAP, aby uzyskać użycie pamięci jednego procesu
Teraz, gdy masz PID procesu docelowego, możesz sprawdzić jego użycie pamięci za pomocą poniższego polecenia.
$ PMAP 4959
Wyjście będzie:
Ze wyjścia widać, że pierwszy wiersz podkreśla nazwę procesu, w tym przypadku Bash i jego identyfikator procesu. Kolejne wiersze zaczynają się od zmapowanego adresu pamięci, a następnie rozmiar pamięci konkretnego adresu pamięci w Kilobytes.
Pozostałe znaki reprezentują uprawnienia pamięci wirtualnej, analizowane poniżej.
R: sugeruje, że proces może odczytać mapowaną pamięć.
w: sugeruje, że proces może zapisać do mapowanej pamięci.
X: sugeruje, że proces może wykonywać instrukcje w zmapowanej pamięci.
Korzystanie z PMAP, aby uzyskać użycie pamięci wielu procesów
Polecenie PMAP jest używane z wieloma PID oddzielonymi przestrzenią, aby uzyskać ich użycie pamięci. Na przykład, jeśli masz PIDS 1818, 1741 i 4959, poleceniem będzie:
$ PMAP 1818 1741 4959
Wyjście jest podobne do jednego procesu, z tym wyjątkiem, że użycie pamięci zostanie oddzielone na każdy proces, jak pokazano poniżej.
Dla wyjścia następnego procesu:
Otrzymanie rozszerzonego wyjścia PMAP
Aby uzyskać rozszerzony format użycia pamięci, dodaj -x do polecenia PMAP, jak w poniższym przykładzie.
$ pmap -x 4959
Wydłużone wyjście polecenia będzie:
Zauważysz, że niektóre dodatkowe pola są wyświetlane z rozszerzonym wyjściem. Każdy z pól reprezentuje inne informacje o użyciu pamięci.
Adres: Reprezentuje początkowy adres mapowania.
Kbytes: To jest rozmiar przestrzeni pamięci wirtualnej.
Rss: To jest rozmiar zestawu rezydentów reprezentowany w kilobytes.
Brudny: Wspólne i prywatne brudne strony wyrażone w kilobajtach.
Tryb: uprawnienia do mapy.
Mapowanie: To jest plik, który popiera mapę i może to być „[stos]” lub „[anon]”.
PMAP Show Format urządzenia
Opcja -D, gdy jest używana z PMAP, wyświetla format urządzenia powiązany z konkretnym procesem.
$ pmap -d 4959
Do wyjścia dodają jeszcze dwa pola.
Zrównoważyć: reprezentuje przesunięcie pliku, jeśli pamięć jest oparta na pliku.
Urządzenie: Format urządzenia.
PMAP wyświetl wszystko
Opcja -x wyświetla rozszerzone wyjście. Możesz jednak pokazać wszystko, co jądro może uzyskać na temat użycia pamięci procesu, dodając opcję -x.
$ pmap -x 4959
Inne opcje PMAP
1. Zdobądź pełną ścieżkę
Aby uzyskać pełną ścieżkę plików:
$ pmap -p 4959
2. Ignoruj nazwy kolumn
Jeśli chcesz wykluczyć nazwy kolumn podczas wyświetlania raportu wyjściowego, na przykład przy uzyskiwaniu nazwy urządzenia:
$ pmap -qd 4959
3. Zdobądź wersję PMAP
Aby zobaczyć bieżącą wersję PMAP:
$ pmap -v
4. Strona pomocy PMAP
Aby otworzyć stronę pomocy PMAP.
$ pmap - -Help
Wniosek
Podczas pracy z Linuksem zrozumienie zarządzania pamięcią może być skomplikowane. Na szczęście z pomocą polecenia PMAP możesz uzyskać pełny obraz tego, co dzieje się w pamięci. Polecenie PMAP jest doskonałym narzędziem dla każdego, kto zajmuje się mapami pamięci procesu. Ten przewodnik obejmował wspólne użycie polecenia PMAP Linux, aby zacząć.