17 grudnia, 2021

jak sprawdzić wykorzystanie pamięci w Linuksie

Zobacz wszystkie FAQ związane z GNU/Linuksem

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.

Reklama

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

Jak sprawdzić wykorzystanie pamięci w Linuksie
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

tabela opisów pól
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
Linux proc meminfo file

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
wyświetlane kolumny są następujące:
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

Zarządzanie wolnym wnioskiem poleceń
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

opis pola dla trybu VM (pamięć i Swap)
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:

Przewodniki tylko dla kibiców Patreon🤓
  • 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

Join Patreon ➔

  • 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.

🐧 Pobierz najnowsze samouczki na temat Linuksa, Open Source&DevOps za pośrednictwem
RSS feed ➔ cotygodniowy biuletyn e-mail ➔

Reklama

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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.