Jak sprawdzić zużycie pamięci na proces w Linux

Jak sprawdzić zużycie pamięci na proces w Linux

Obecnie komputer może uruchamiać wiele programów jednocześnie. CPU nie ma problemu z obsługą wszystkich tych programów, ponieważ procesory ma wiele rdzeni do obsługi wielozadaniowej.

Każdy z tych programów działa jako jeden lub więcej procesów. Każdy proces przydzielał sobie pewną ilość pamięci RAM lub pamięci. Niezbędne jest, aby proces był prawidłowy. Jeśli proces nie przydziela wystarczającej liczby pamięci RAM lub pamięci, proces nie może zostać utworzony, a program nie będzie mógł uruchomić.

Tak więc jednym z podstawowych zadań, które wykonujesz na komputerze, jest sprawdzenie, ile pamięci lub pamięci RAM (pamięć o dostępie do losowego) używana jest każdy proces. Ponieważ pamięć lub pamięć twojego komputera są ograniczone.

Wyobraź sobie przypadek, w którym chcesz uruchomić jakiś program i to się nie powiedzie, ponieważ nie masz wystarczającej pamięci. Może być niektóre z procesów, których nie potrzebujesz, nie potrzebujesz. Możesz zabić lub zatrzymać te procesy, aby zwolnić pamięć RAM lub pamięć, abyś mógł rozpocząć ważne programy.

W tym artykule pokażę, jak sprawdzić zużycie pamięci każdego z procesów działających na twoim komputerze Linux. Będę używać debiana 9 odcinka do całej demonstracji w tym artykule. Ale powinien działać na dowolnych nowoczesnych dystrybucjach Linux. Zacznijmy.

Sprawdzanie użycia pamięci za pomocą polecenia PS:

Możesz użyć Ps Polecenie do sprawdzenia użycia pamięci wszystkich procesów w Linux. Jest jeden problem z tą procedurą. Ps Naprawdę nie pokazuj, ile pamięci zużywa proces w formacie KB lub MB, ale pokaże, ile pamięci jest używane w procentach.

Możesz sprawdzić użycie pamięci (w procentach) całego procesu działającego w systemie operacyjnym Linux za pomocą następującego polecenia:

$ PS -O PID, użytkownik,%MEM, Command Axe | sort -b -k3 -r

Jak widać, wszystkie procesy z wykorzystaniem pamięci w procentach są wymienione w kolejności malejącej (procesy wykorzystujące większość pamięci są wymienione jako pierwsze).

Sprawdzanie zużycia pamięci procesów za pomocą PMAP:

Możesz sprawdzić pamięć procesu lub zestaw procesów w formacie czytelnym człowieka (w KB lub kilobytes) z pmap Komenda. Wszystko, czego potrzebujesz, to PID procesów, które chcesz sprawdzić użycie pamięci.

Powiedzmy, że chcesz sprawdzić, ile pamięci PID z PID 917 używa. Aby to zrobić, biegnij pmap następująco:

$ sudo pmap 917

Jak widać, całkowita pamięć używana przez proces 917 wynosi 516104 kb lub kilobytes. Możesz także zobaczyć, ile pamięci używają biblioteki i inne pliki wymagane do uruchomienia procesu z PID 917.

Jeśli nie obchodzi Cię, ile pamięci używają biblioteki lub inne pliki zależne, uruchomić pmap następująco:

$ sudo pmap 917 | ogon -n 1

Jak widać, na ekranie wydrukuje tylko całkowita pamięć używana przez proces z PID 917.

Jeśli chcesz, możesz to dalej odfiltrować Awk i zdobądź tylko rozmiar w KB lub kilobajtach. Aby to zrobić, biegnij pmap następująco:

$ sudo pmap 917 | ogon -n 1 | awk '/[0-9] k/drukuj 2 $'

Jak widać, wydrukowane jest tylko zużycie pamięci w KB lub Kilobites.

Teraz możesz również wymienić, ile pamięci jest używane przez wiele procesów za pomocą ich PIDS pmap następująco:

$ sudo pmap 917 531 | GREP CALE

NOTATKA: Tutaj 917 i 531 to identyfikatory procesowe lub PIDS. Możesz umieścić tyle pidów, ile chcesz w ten sposób.

Korzystanie z PMAP do wyświetlania użycia pamięci wszystkich procesów w kilobytach:

W tej sekcji pokażę, jak napisać własny skrypt powłoki, aby wymienić użycie pamięci wszystkich procesów działających w systemie operacyjnym Linux w formacie czytelnym ludzkim (Kilobytes lub KB).

Najpierw zrób nowy plik Sysmon W obecnym katalogu roboczym z następującym poleceniem:

$ Touch Sysmon

Teraz uczyń plik wykonywalny za pomocą następującego polecenia:

$ chmod +x sysmon

Sysmon to skrypt powłoki, który wyświetli wszystkie uruchomione procesy Pid, WŁAŚCICIEL, PAMIĘĆ (w KB w kolejności malejącej) i KOMENDA. Zaczynajmy.

Otworzyć Sysmon skrypt ze swoim ulubionym edytorem tekstu, zamierzam użyć Kate.

Teraz pierwsze polecenie, które zamierzam uruchomić, da mi Pid, WŁAŚCICIEL I KOMENDA spośród wszystkich działających procesów oddzielonych dwukropkiem (:) symbol i przechowuj w Rawin zmienny. Następnie zapętbaj wyjście i wydrukuj je na ekranie.

Jak widać, otrzymuję prawidłowe wyjście.

Teraz nadszedł czas, aby przetworzyć każdą linię, przechowywać informacje o okrężnicy w oddzielnych zmiennych. To właśnie zrobiłem w linii 7, 8 i 9.

Jak widać, mogę wydrukować Pid, WŁAŚCICIEL I KOMENDA Teraz w moim własnym formacie.

Teraz nadszedł czas, aby przynieść zużycie pamięci każdego PID. Linia 10 właśnie to robi.

Jak widać, wszystko działa idealnie. Teraz mogę wydrukować zużycie pamięci każdego procesu w Kilobaytes (KB).

Teraz wszystko, co pozostało do zrobienia, to sformatować wyjście, aby ładnie wyglądać. Wolę format tabeli. Linia 5 wydrukuje nagłówek każdej kolumny tabeli.

W końcu wydrukowałem Pid, WŁAŚCICIEL, PAMIĘĆ (w KB) i KOMENDA każdego procesu w formacie tabelarycznym za pomocą wiersza 14.

Jak widać, działa trochę dobrze. Jest jednak trochę problemu, procesy nie są poprawnie sortowane w kolejności malejącej według użytkowania pamięci.

Aby to naprawić, usunąłem sort -bnr -k3 z wiersza 3 i owinięci wszystkiego w funkcji powłoki sysmon_main (). Następnie pozostawił zadanie sortowania sortować Komenda.

Ostatni skrypt powłoki wygląda tak mniej więcej tak:

Jak widać, działa świetnie.

Teraz możesz go przenieść do gdzieś tak /usr/bin i wykonaj to tak jak inne polecenia w następujący sposób:

$ sudo mv -v sysmon /usr /bin

Wykonanie Sysmon:

Dziękujemy za przeczytanie tego artykułu.