Polecenia do zarządzania pamięcią Linux

Polecenia do zarządzania pamięcią Linux
Systemy UNIX/LINUX zawierają narzędzie wiersza poleceń dla prawie wszystkiego. Obejmuje to również programy do obsługi pamięci. W tym artykule pokazujemy wybór poleceń, które są dla Ciebie bardzo przydatne jako użytkownik Linuksa.

Wykryj sprzęt za pomocą DmideCode

Automatyczne wykrywanie sprzętu zawsze było trochę jak loteria, ale w ostatnich latach poprawiła się, ponieważ wielu producentów dokumentuje swoje produkty bardziej szczegółowo i ma szczególne informacje również online. Aby dowiedzieć się o informacji sprzętowej dotyczącej pamięci RAM zainstalowanej w komputerze, użyj DmideCode Polecenie (pakiet dla Debian GNU/Linux, Ubuntu i Linux Mint: DmideCode).

Wśród innych informacji to narzędzie podano szczegółowe dane na temat zainstalowanych komponentów systemu, takich jak procesor, Baseboard i RAM. Informacje są oparte na interfejsie zarządzania komputerami stacjonarnym (DMI) [1], który jest ramą, która klasyfikuje pojedyncze komponenty na komputerze stacjonarnym, notatniku lub serwerze poprzez wyodrębnienie tych komponentów z oprogramowania, które je zarządza [2]. Opcja --Wpisz pamięć odnosi się do urządzeń pamięci. W przypadku innych zajęć DMI przyjrzyj się ręcznej stronie DmideCode.

# dmideCode -Type pamięć
# DmideCode 2.12
SMBIOS 2.7 Prezent.
Uchwyt 0x0007, DMI typu 16, 23 bajtów
Fizyczna tablica pamięci
Lokalizacja: płyta systemowa lub płyta główna
Użyj: pamięć systemowa
Typ korekcji błędu: Brak
Maksymalna pojemność: 16 GB
Błąd Uchwyt informacji: nie podany
Liczba urządzeń: 1
Uchwyt 0x0008, DMI Typ 17, 34 bajty
Urządzenie pamięci
Uchwyt tablicy: 0x0007
Błąd Uchwyt informacji: nie podany
Całkowita szerokość: 64 bity
Szerokość danych: 64 bity
Rozmiar: 8192 MB
Forma: sodimm
Zestaw: Brak
Lokalizator: Channela-Dimm0
Lokalizator banku: bank 0
Typ: DDR3
Wpisz szczegół: synchroniczne
Prędkość: 1600 MHz
Producent: Samsung
Numer seryjny: 25252105
Tag aktywów: Brak
Numer części: M471B1G73DB0-YK0
Ranga: nieznana
Skonfigurowana prędkość zegara: 1600 MHz

Ta maszyna jest obecnie wyposażona w 8G DDR3 RAM z skonfigurowaną prędkością zegara 1600 MHz. Jak widać maksymalną dostępną pojemność wbudowanego pamięci RAM to 16G, co oznacza, że ​​może zostać rozszerzony przez drugi moduł 8G.

Informacje graficzne na temat pamięci

W przypadku, gdy wolisz interfejs graficzny, aby odzyskać te informacje, narzędzia Hardinfo [3] i sprzęt Lister (wersja GTK+) [4] mogą być dla Ciebie zainteresowane. W Debian GNU/Linux, Ubuntu i Linux Mint Te programy są dostępne za pośrednictwem pakietów Hardinfo i LSHW-GTK. Rysunek 2 pokazuje interfejs użytkownika Hardinfo wyświetlający informacje o pamięci na instalacji Xubuntu.

Ile pamięci jest obecnie dostępne

Czasami mniej znaczy więcej. Na linii poleceń informacje dotyczące pamięci są dostępne za pośrednictwem bezpłatny Komenda. W Debian GNU/Linux, Ubuntu i Linux Mint Ten program jest częścią pakietu Procps [5]. Rysunek 2 pokazuje wyjście w oknie terminalu.

Jako wybór kolejnych opcji, bezpłatny akceptuje różne parametry, takie jak:

  • -B (--bajtes): Pokaż dane wyjściowe jako bajty
  • -K (--Kilo): Pokaż dane wyjściowe jako kilobajty
  • -M (--mega): Pokaż dane wyjściowe jako megabajty
  • -G (-giga): Pokaż dane wyjściowe jako gigabajty
  • --Tera: Pokaż dane wyjściowe jako terabajty
  • -H (--human): Pokaż wynik w formacie czytelnym człowieka

Na rysunku 3 wyjście pokazano w megabajtach za pomocą opcji -m. System ma 4G pamięci RAM, podczas gdy 725 m jest obecnie używany.

Informacje o pamięci z punktu widzenia jądra Linux

Narzędzia wymienione powyżej polegają na surowych informacjach, które są przechowywane w systemie plików PROC. Aby pokazać te szczegóły, wyświetl zawartość pliku /proc/meminfo używając kot użyteczność w terminalu:

$ cat /proc /meminfo
Memtotal: 7888704 kb
Memfree: 302852 kb
Memavailable: 448824 kb
Bufory: 17828 KB
Buforowany: 326104 kb
Zamieszczone: 69592 kb
Aktywne: 2497184 kb
Nieaktywny: 650912 kb
Active (Anon): 2338748 KB
Nieaktywny (anon): 525316 kb
Aktywny (plik): 158436 kb
Nieaktywny (plik): 125596 kb
Nieistotne: 64 kb
Mlocked: 64 kb
Swaptotal: 16150524 kb
Swapfree: 15668480 kb
Dirty: 3008 kb
Writeback: 0 kb
Anonpages: 2774656 kb
Mapowane: 4414752 kb
Shmem: 59900 kb
Płyta: 130216 kb
Sreclableble: 61748 kb
SunReclaim: 68468 KB
Kernelstack: 7328 kb
Pagetables: 42844 kb
Nfs_unstable: 0 kb
Bounce: 0 kb
Writebacktmp: 0 kb
Commitlimit: 20094876 KB
COMPLITED_AS: 10344988 KB
Vmalloctotal: 34359738367 kb
VMALLOCUSUSE: 367296 KB
Vmallocchunk: 34359345768 KB
Hardwarecrupted: 0 kb
Anonhugepages: 0 kb
Ogromneges_total: 0
Ogromne Sage_free: 0
Ogromneges_rsvd: 0
Ogromneges_surp: 0
Ogromna strona internetowa: 2048 kb
DirectMap4k: 78448 KB
DirectMap2M: 2756608 KB
DirectMap1g: 5242880 kb
$

Aby uzyskać więcej informacji statystycznych dotyczące wykorzystania procesora, pamięci i procesów, możesz przyjrzeć się narzędziom VMSTAT, I Iostat (Pakiety Debian Procps i Sysstat).

Praca z procesami - PS, HTOP i PSTREE

Aby pokazać aktywne procesy systemu Linux, użyj Ps Komenda. Zwykle wyjście jest sortowane alfabetycznie. Ale Ps Dowództwo może zrobić znacznie więcej. Korzystanie z opcji Aux --sort -rss Wyjście listy procesów jest sortowane według ich użycia pamięci w kolejności odgórnej. Rysunek 4 pokazuje procesy, które mają najwyższe zapotrzebowanie na pamięć. Wyjście jest sortowane przez szóstą kolumnę zatytułowaną RSS, która skróci rozmiar zestawu rezydenta. Wartość jest podana w kilobajtach.

Polecenia PS, pstree I htop są ściśle powiązane pod względem informacji wyświetlanych przez te narzędzia. Obydwa pstree I htop Wyświetl wykres wizualizacji zależności procesu. htop Działa jako interaktywna wersja, która pozwala przewijać listę procesów w górę i w dół. Rysunek 5 pokazuje htop w systemie stacjonarnym z wyborem procesów posortowanych według ich określonego użycia pamięci (5. kolumna).

Znalezienie procesów wykorzystujących pamięć zamiany

Im więcej procesów jest uruchamiane, tym więcej pamięci jest w tym samym czasie używana. Gdy tylko system Linux zabraknie nieużywanych stron pamięci, jądro Linux decyduje się na wymianę stron pamięci na dysk za pomocą metody najstarszej (LRU). Aby odpowiedzieć na pytanie, które procesy wykorzystują pamięć zamieniania, a w szczególności używane, możesz rzucić okiem na dane wyjściowe najlepszego programu. W 2016 r. Erik Ljungstrom opublikował krótki opis, jak pobrać te informacje i rozszerzyć tę kolumnę na wyjście TOP [6]. Rysunek 6 pokazuje to wyjście w systemie, który ma wiele stron pamięci w pamięci RAM i nie używa zamiany, obecnie.

Ponadto w 2011 r. Opublikował już skrypt bash, który ocenia informacje z systemu plików PROC w celu wyświetlenia użycia procesu swap według procesu [7]. Nawet 7 lat później i już opisanych jako przestarzały, skrypt jest nadal doskonały i pokazuje, jak automatyzować zadania w systemie Linux. Dlatego jesteśmy pewni, że pomocne jest pokazanie go tutaj ponownie.

Wyjście skryptu jest następujące (uruchom jako źródło Użytkownik pobrania pełnych danych):

# ./zamieniać.cii
PID = 1 - Zastosowany wymiana: 0 - (SystemD)
PID = 2 - Zastosowany wymiana: 0 - (KTHREADD)
PID = 3 - Zastosowano: 0 - (KSoftirqd/0)
PID = 5 - Zastosowano zamian: 0 - (Kworker/0: 0h)
PID = 6 - Zastosowano zamian: 0 - (Kworker/U16: 0)
PID = 7 - Zastosowano zamian: 0 - (RCU_SCHED)
PID = 8 - Zastosowano wymian: 0 - (rcu_bh)
PID = 9 - Zastosowano zamian: 0 - (migracja/0)
PID = 10 - Zastosowano Swap: 0 - (Watchdog/0)
PID = 11 - Zastosowano wymian: 0 - (Watchdog/1)
PID = 12 - Zastosowano zamian: 0 - (migracja/1)
PID = 13 - Zastosowano wymian: 0 - (KSoftirqd/1)
PID = 15 - Zastosowano zamian: 0 - (Kworker/1: 0h)
PID = 16 - Zastosowano wymian: 0 - (Watchdog/2)
PID = 17 - Zastosowano zamian: 0 - (migracja/2)
PID = 18 - Zastosowano wymian: 0 - (Ksoftirqd/2)
PID = 20 - Zastosowano zamian: 0 - (Kworker/2: 0h)

#

Wniosek

Linux Toolbox zawiera nieskończoną listę dostępnych programów, które pomogą Ci analizować użycie pamięci systemu Linux. Właśnie krótko wyglądaliśmy - od surowych danych po wstępnie przetworzone informacje - wszystko tam jest. Po prostu poznaj swoje narzędzia. Aby zapoznać się z nimi, poświęć trochę czasu i bawić się z nimi.

To jest część 2 serii w zakresie zarządzania pamięcią jądra Linux. Część 1 omawia pamięć zamiany, w trzeciej części tej serii omówimy, jak zoptymalizować użycie pamięci. Obejmie to zarządzanie Ramdisks, a także skompresowane pliki swap.

Linki i referencje

  • [1] DMI w grupie zadaniowej dystrybucji zarządzania (DMTF)
  • [2] DMI na Wikipedii
  • [3] Hardinfo
  • [4] LSHW-GTK (Pakiet Debian for Elaster)
  • [5] procps (pakiet debian na rozciąganie)
  • [6] Erik Ljungstrom: Dowiedz się, co używa Twojej zamiany
  • [7] Erik Ljungstrom: Zamknięcie - 5 lat później

Linux Memory Management Series

  • Część 1: Zarządzanie pamięcią jądra Linux: Przestrzeń zamiany
  • Część 2: Polecenia do zarządzania pamięcią Linux
  • Część 3: Optymalizacja użycia pamięci Linux

Podziękowanie

Autor chciałby podziękować Mandy Neumeyer i Gerold Rupprecht za ich wsparcie podczas przygotowywania tego artykułu.