jak sprawdzić wykorzystanie pamięci w Linuksie
Jak sprawdzić wykorzystanie pamięci w Linuksie za pomocą linii poleceń i opcji GUI?
mamy fizyczną PAMIĘĆ RAM, taką jak 16GB i pamięć swap. Pamięć wymiany to nic innego jak miejsce na dysku, które pozwala komputerowi z systemem Linux uruchamiać jednocześnie więcej aplikacji niż zmieści się w pamięci systemowej (RAM). Ta strona wyjaśnia różne polecenia do sprawdzania użycia i wykorzystania pamięci w Linuksie za pomocą wiersza poleceń i narzędzi GUI.
polecenia sprawdzające wykorzystanie pamięci w systemie Linux
Twój system Linux musi działać na optymalnym poziomie. Pamięć odgrywa kluczową rolę w systemie Linux. Programista lub doświadczony sysadmin musi znać całkowitą ilość wolnej i używanej pamięci fizycznej, w tym pamięci wymiany na serwerze. Najlepiej byłoby mieć oko na bufory i bufory używane przez jądro.
plik /proc/meminfo
plik /proc/meminfo raportuje statystyki dotyczące wykorzystania pamięci w systemie Linux. Użyj polecenia cat command / less command lub grep command / egrep command w następujący sposób na Linuksie:cat /proc/meminfo
more /proc/meminfo
każda linia pliku/proc / meminfo składa się z nazwy parametru, po którym następuje dwukropek, wartość parametru i opcjonalna jednostka miary. Na przykład „kB”.
zrozumienie parametrów wykorzystania pamięci
parametr | opis |
---|---|
MemTotal | całkowita użyteczna PAMIĘĆ RAM (tj., fizycznej pamięci RAM minus kilka zarezerwowanych bitów i kod binarny jądra). |
MemFree | suma LowFree+HighFree. |
MemAvailable | (od Linuksa 3.14) oszacowanie ilości pamięci dostępnej do uruchamiania nowych aplikacji, bez wymiany. |
bufory | stosunkowo tymczasowa pamięć masowa dla nieprzetworzonych bloków dyskowych, które nie powinny być zbyt duże (około 20 MB). |
buforowana | Pamięć podręczna dla plików odczytywanych z dysku (pamięć podręczna strony). Nie obejmuje SwapCached. |
SwapCached | pamięć, która kiedyś została zamieniona, jest zamieniana z powrotem, ale nadal znajduje się w pliku wymiany. |
aktywna | pamięć, która była używana Ostatnio i zwykle nie jest odzyskiwana, chyba że jest to absolutnie konieczne. |
nieaktywna | pamięć, która była ostatnio rzadziej używana. Bardziej kwalifikuje się do odzyskania do innych celów. |
HighTotal | całkowita ilość highmem. Highmem jest cała pamięć powyżej ~860mb pamięci fizycznej. Obszary Highmem są używane przez programy kosmiczne użytkownika lub do pamięci podręcznej strony. Jądro musi używać sztuczek, aby uzyskać dostęp do tej pamięci, dzięki czemu dostęp jest wolniejszy niż lowmem. |
HighFree | ilość darmowych highmów. |
LowFree | Ilość darmowego lowmem. |
SwapTotal | całkowita ilość dostępnej przestrzeni swapowej. |
SwapFree | Ilość miejsca wymiany, która jest obecnie nieużywana. |
Brudna | pamięć, która czeka na zapis z powrotem na dysk. |
Writeback | pamięć, która jest aktywnie zapisywana z powrotem na dysk. |
AnonPages | strony bez kopii plików mapowane do tabel stron w przestrzeni użytkownika. |
zmapowane | pliki, które zostały zmapowane do pamięci (za pomocą mmap (2)), takie jak biblioteki. |
Shmem | Ilość pamięci zużywanej w systemach plików tmpfs(5). |
KReclaimable | alokacje jądra, które jądro będzie próbowało odzyskać pod presją pamięci. Obejmuje SReclaimable (poniżej) i inne bezpośrednie przydziały z psychiatrą. |
Slab | In-kernel data structures cache. (Patrz slabinfo (5).) |
SReclaimable | część płyty, które mogą być odzyskane, takie jak pamięci podręczne. |
SUnreclaim | część płyty, która nie może być odzyskana na ciśnienie pamięci. |
KernelStack | Ilość pamięci przydzielonej do stosów jądra. |
PageTables | Ilość pamięci dedykowanej najniższemu poziomowi tabel stron. |
NFS_Unstable | strony NFS wysłane na serwer, ale jeszcze nie przypisane do stabilnej pamięci masowej. |
Bounce | pamięć używana do blokowania urządzeń „bounce buffers”. |
Writebacktmp | pamięć używana przez FUSE do tymczasowych buforów zapisu. |
CommitLimit | jest to całkowita ilość dostępnej pamięci do przydzielenia w systemie, wyrażona w kilobajtach. Ograniczenie to jest przestrzegane tylko wtedy, gdy włączona jest ścisła księgowość nadkomitowa (tryb 2 W /proc/sys/vm/overcommit_memory). Limit jest obliczany według wzoru opisanego w / proc/sys/vm / overcommit_memory. |
Committed_AS | Ilość pamięci aktualnie przydzielonej w systemie. Pamięć zaangażowana jest sumą całej pamięci, która została przydzielona przez procesy, nawet jeśli do tej pory nie była przez nie „używana”. Proces, który przydziela 1 GB pamięci (używając malloc(3) lub podobnego), ale dotyka tylko 300 MB tej pamięci, pokaże się jako wykorzystujący tylko 300 MB pamięci, nawet jeśli ma miejsce adresowe przydzielone na cały 1 GB. Ten 1 GB to pamięć, która została „przydzielona” przez maszynę wirtualną i może być używana w dowolnym momencie przez aplikację alokującą. Przy włączonym strict overcommit w systemie (tryb 2 W / proc/sys/vm / overcommit_memory), alokacje przekraczające limit zatwierdzeń nie będą dozwolone. Jest to przydatne, jeśli trzeba zagwarantować, że procesy nie zawiodą z powodu braku pamięci, gdy pamięć ta zostanie pomyślnie przydzielona. |
Vmalloctotal | Całkowity rozmiar obszaru pamięci vmalloc. |
VmallocUsed | Ilość użytego obszaru vmalloc. Od Linuksa 4.4 to pole nie jest już obliczane i jest zakodowane jako 0. Zobacz /proc / vmallocinfo. |
Vmallocchunk | największy sąsiadujący blok obszaru vmalloc, który jest wolny. Od Linuksa 4.4 to pole nie jest już obliczane i jest zakodowane jako 0. Zobacz /proc / vmallocinfo. |
LazyFree | pokazuje ilość pamięci oznaczoną przez madvise (2) MADV_FREE. |
AnonHugePages | ogromne strony bez kopii plików odwzorowane na tabele stron w przestrzeni użytkownika. |
ShmemHugePages | pamięć używana przez pamięć współdzieloną (shmem) i tmpfs (5) przydzielana z ogromnymi stronami |
ShmemPmdMapped | współdzielona pamięć mapowana w Przestrzeń użytkownika z ogromnymi stronami. |
CmaTotal | Total CMA (Contiguous Memory Allocator) pages. |
CmaFree | darmowe strony CMA (Contiguous Memory Allocator). |
HugePages_Total | wielkość puli ogromnych stron. |
HugePages_Free | Liczba ogromnych stron w Puli, które nie są jeszcze przydzielone. |
HugePages_Rsvd | jest to liczba ogromnych stron, dla których podjęto zobowiązanie do alokacji z puli, ale nie dokonano jeszcze alokacji. Te zarezerwowane ogromne strony gwarantują, że aplikacja będzie w stanie przydzielić ogromną stronę z puli ogromnych stron w czasie błędu. |
HugePages_Surap | jest to liczba ogromnych stron w Puli powyżej wartości w /proc/sys/vm/nr_hugepages. Maksymalna liczba nadmiarowych stron jest kontrolowana przez / proc/sys/vm / nr_overcommit_hugepages. |
Hugepagesize | Rozmiar ogromnych stron. |
DirectMap4k | Liczba bajtów pamięci RAM odwzorowanych liniowo przez jądro na stronach 4kB. |
DirectMap4M | Liczba bajtów pamięci RAM odwzorowanych liniowo przez jądro na stronach 4MB. |
DirectMap2M | Liczba bajtów pamięci RAM odwzorowanych liniowo przez jądro na stronach 2MB. |
DirectMap1G | x86 z włączonymi CONFIG_X86_64 i CONFIG_X86_DIRECT_GBPAGES. |
możemy odfiltrować plik za pomocą polecenia grep lub polecenia egrep w następujący sposób:grep -E --color 'Mem|Cache|Swap' /proc/meminfo
używanie darmowego polecenia do sprawdzania używanego i wolnego wykorzystania pamięci
wyjście /proc/meminfo jest potężne, ale nie przyjazne dla użytkownika. Dlatego musimy użyć polecenia free. Polecenie free pokazuje ilość wolnej i używanej pamięci w systemie Linux. Na przykład:free
chcesz zobaczyć dane wyjściowe czytelne dla człowieka? Spróbuj:free -h
free --human
przykładowe wyjścia:
total used free shared buff/cache availableMem: 94Gi 15Gi 672Mi 428Mi 78Gi 77GiSwap: 0B 0B 0B
Kolumna | opis |
---|---|
całkowita | całkowita zainstalowana pamięć |
używana | używana pamięć (obliczona jako total-free-buffers-cache) |
wolna | nieużywana pamięć (MemFree i SwapFree w /proc / meminfo) |
współdzielona | pamięć używana głównie przez tmpfs (Shmem w /proc / meminfo) |
bufory | pamięci używane przez bufory jądra (bufory w / proc/ meminfo) |
pamięć podręczna | pamięć używana przez pamięć podręczną strony i płyty (buforowane i zapisywane w / proc / meminfo) |
buff / cache | suma buforów i cache |
dostępne | Szacowanie ilości pamięci dostępnej do uruchamiania nowych aplikacji, bez wymiany. |
możemy powtórzyć drukowanie wolnego wyjścia polecenia co N sekund. Na przykład wydrukuj wyjście co 5 sekund i zakończ po dziesięciu takich powtórzeniach (liczy się) na ekranie:free -s 5 -c 10
możemy kontrolować wyjście wolnego polecenia w następujący sposób:free
free -k
free -g
free -m
Opcja | Pokaż dane wyjściowe w |
---|---|
-b, –bajty | |
— kilogram | kilobajtów |
— mega | mb |
–giga | pl |
— tera | terabajtów |
— peta | pb |
– k, –k. i. b. i. | кибибайт |
– m, –mebi | ignore |
– g, — gibi | gibibajty |
–tebi | tebibytes |
–pebi | pebibytes |
polecenie vmstat
polecenie vmstat jest potężne i wyświetla informacje o sprzęcie Linuksowym, takie jak:
- Processes
- Memory
- Paging
- Block IO
- Traps
- Disks
- CPU activity
Otwórz terminal i wpisz następujące polecenie:vmstat
przykładowa sesja z mojego pulpitu Ubuntu Linux:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 11434840 2567516 10238916 0 0 26 75 142 55 13 5 82 0 0
przekaż-w, aby zobaczyć szerokie wyjście na ekranie:vmstat -w
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 11405404 2567988 10324528 0 0 26 75 142 58 13 5 82 0 0
pole | opis |
---|---|
swpd | Ilość użytej pamięci wirtualnej. |
free | Ilość pamięci bezczynności. |
buff | Ilość pamięci użytej jako bufory. |
cache | Ilość pamięci używanej jako cache. |
inact | Ilość nieaktywnej pamięci. (- opcja) |
aktywny | Ilość aktywnej pamięci. (- opcja) |
si | Ilość pamięci zamienionej z dysku (/S). |
tak więc | Ilość pamięci zamienionej na dysk (/s). |
polecenia top i htop
polecenia top i htop zapewniają dynamiczny widok działającego systemu Linux w czasie rzeczywistym. Obejmuje to informacje o:
- Brak reklam i śledzenia
- szczegółowe przewodniki dla programistów i administratorów w Opensourceflare✨
- Dołącz do my Patreon, aby wspierać niezależnych twórców treści i zacząć czytać najnowsze przewodniki:
- jak skonfigurować Redis sentinel cluster na Ubuntu lub Debian Linux
- jak skonfigurować klucze SSH z YubiKey jako uwierzytelnianie dwuskładnikowe (U2F/FIDO2)
- jak skonfigurować Mariadb Galera cluster na Ubuntu lub Debian Linux
- samouczek podman dla początkujących-część I (uruchamianie kontenerów Linux bez Dockera i
- jak chronić Linuksa przed nieuczciwymi urządzeniami USB za pomocą USBGuard
- jeśli Twoja domena nie wysyła wiadomości e – mail, Ustaw te ustawienia DNS, aby uniknąć fałszowania i phishingu
- wykorzystanie sprzętu i procesora
- czas pracy systemu Linux
- wykorzystanie pamięci i swapów
- procesy systemowe i inne
należy pamiętać, że htop nie jest zainstalowany domyślnie. Ale możesz go łatwo zainstalować na CentOS, Debianie, Ubuntu i innych systemach operacyjnych.
uruchom następujące polecenie:top
htop
raport o zużyciu pamięci z dzieloną pamięcią podzieloną proporcjonalnie
raporty narzędzia smem:
- wykorzystanie pamięci fizycznej z uwzględnieniem stron pamięci współdzielonej. Nie dzielona pamięć jest zgłaszana jako USS (Unique Set Size).
- pamięć dzielona jest równomiernie pomiędzy procesy współdzielące tę pamięć.
- nie dzielona pamięć (USS) plus część pamięci współdzielonej procesu jest zgłaszana jako PSS (Proportional Set Size).
- USS i PSS zawierają tylko fizyczne użycie pamięci. Nie obejmują one pamięci, która została zamieniona na dysk.
- pamięć może być zgłaszana przez proces, przez użytkownika, przez mapowanie lub przez cały system. Dostępne są zarówno tryb tekstowy, jak i wyjście graficzne.
można zainstalować smem używając polecenia apt / apt-get na Debianie / Ubuntu Linux:sudo apt install smem
uruchom go w następujący sposób:smem
# show whole system #
smem -w
# show meme usage about specifc user #
smem -u vivek
smem -u nginx
# get help #
man smem
smem --help
User Count Swap USS PSS RSS vivek 139 0 7593240 8210344 13017360
sprawdzanie wykorzystania pamięci w systemie Linux za pomocą GUI
System Monitor to aplikacja GUI Linux, która pokazuje, jakie programy są uruchomione i ile czasu procesora, pamięci i miejsca na dysku są używane. Możemy otworzyć Monitor Systemu z przeglądu działań. Naciśnij Super klawisz na klawiaturze. Możesz zobaczyć swoje okna i aplikacje w przeglądzie. Możesz także zacząć pisać, aby przeszukiwać aplikacje, takie jak monitor systemu. Zakładka zasoby informuje, ile pamięci komputera (RAM) jest używane. Aby sprawdzić, które procesy zużywają najwięcej pamięci: Kliknij kartę Procesy. Kliknij nagłówek kolumny pamięć, aby posortować procesy zgodnie z wykorzystaniem pamięci.
zobacz dokumentację, aby uzyskać więcej informacji.
Podsumowując
nauczyłeś się, jak znaleźć wykorzystanie pamięci (RAM) w Linuksie za pomocą narzędzi GUI i CLI.
RSS feed ➔ cotygodniowy biuletyn e-mail ➔
Kategoria | lista komend Unix i Linux |
---|---|
Menedżery pobierania | wget |
dokumentacja | pomoc * mandb • man * pinfo |
analizatory przestrzeni dyskowej | df * duf * ncdu • pydf |
Zarządzanie plikami | cat • CP * less • mkdir • more • tree |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • * * * RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Linux Desktop apps | Skype • Spotify • VLC 3 |
Modern utilities | bat • exa |
Network Utilities | NetHogs • dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Menedżer pakietów | apk * apt |
Zarządzanie procesami | bg • chroot • cron • disown • fg • spojrzenia • gtop • iotop • jobs • killall • kill • pidof * pstree • pwdx • time • Vtop |
Szukam | ag * grep * whereis * which |
builtins powłoki | compgen • echo * printf |
przetwarzanie tekstu | cut • rev |
informacje o użytkowniku | grupy * id * lastcomm • ostatni • lid / libuser-lid • logname • members • users * whoami • who * w |
WireGuard VPN | Alpine • CentOS 8 * Debian 10 * Firewall * Ubuntu 20.04 |