17 prosince, 2021

jak zkontrolovat využití paměti v Linuxu

Zobrazit všechny FAQ související s GNU / Linuxem

Jak mohu zkontrolovat využití paměti v Linuxu pomocí volby příkazového řádku a GUI?
máme fyzickou RAM, jako je 16 GB a odkládací paměť. Odkládací paměť není nic jiného než místo na disku, které umožňuje počítači se systémem Linux spouštět více aplikací současně, než se vejde do systémové paměti (RAM). Tato stránka vysvětluje různé příkazy pro kontrolu využití a využití paměti v Linuxu pomocí nástrojů příkazového řádku a GUI.

reklama

příkazy pro kontrolu využití paměti v Linuxu

váš systém Linux musí běžet na optimální úrovni. Paměť hraje v systému Linux kritickou roli. Vývojář nebo zkušený sysadmin musí znát celkové množství volné a použité fyzické, včetně odkládací paměti na serveru. Nejlepší by bylo, kdybyste sledovali vyrovnávací paměti a mezipaměti používané také jádrem.

soubor / proc / meminfo

soubor / proc / meminfo hlásí statistiky o využití paměti v systému Linux. Použijte příkaz cat command / less command nebo příkaz grep command / egrep v Linuxovém boxu následujícím způsobem:
cat /proc/meminfo
more /proc/meminfo

jak zkontrolovat využití paměti v Linuxu
každý řádek souboru /proc / meminfo se skládá z názvu parametru, následovaného dvojtečkou, hodnotou parametru a volitelnou měrnou jednotkou. Například „kB“.

porozumění parametrům využití paměti

pole popisná tabulka
parametr popis
MemTotal celková použitelná paměť RAM (tj., fyzická RAM minus několik vyhrazených bitů a binární kód jádra).
MemFree součet LowFree + HighFree.
MemAvailable (od Linuxu 3.14) odhad, kolik paměti je k dispozici pro spouštění nových aplikací, bez výměny.
vyrovnávací paměti relativně dočasné úložiště pro bloky raw disků, které by neměly být ohromně velké (asi 20 MB).
cache mezipaměť v paměti pro soubory načtené z disku (mezipaměť stránky). Nezahrnuje SwapCached.
SwapCached paměť, která byla jednou vyměněna, je vyměněna zpět, ale stále je také ve swapovém souboru.
aktivní paměť, která byla použita v poslední době a obvykle není regenerována, pokud to není nezbytně nutné.
neaktivní paměť, která byla nedávno použita. Je více způsobilý k rekultivaci pro jiné účely.
HighTotal celkové množství highmem. Highmem je veškerá paměť nad ~860 MB fyzické paměti. Oblasti Highmem jsou určeny pro použití programy uživatelského prostoru nebo pro mezipaměť stránky. Jádro musí používat triky pro přístup k této paměti, takže je přístup pomalejší než lowmem.
HighFree množství volného highmem.
LowFree množství volného lowmem.
SwapTotal celkové množství swapového prostoru k dispozici.
SwapFree množství swapového prostoru, který je aktuálně nevyužitý.
špinavá paměť, která čeká na zápis zpět na disk.
Writeback paměť, která se aktivně zapisuje zpět na disk.
anonpages stránky bez podpory souborů namapované do tabulek stránek v uživatelském prostoru.
mapovány soubory, které byly namapovány do paměti (s mmap (2)), jako jsou knihovny.
Shmem množství paměti spotřebované v souborových systémech tmpfs(5).
KReclaimable přidělení jádra, které se jádro pokusí získat zpět pod tlakem paměti. Zahrnuje SReclaimable (níže), a další přímé alokace s shrinker.
Slab mezipaměť datových struktur v jádře. (Viz slabinfo (5).)
SReclaimable část desky, která by mohla být rekultivována, jako jsou mezipaměti.
SUnreclaim část desky, kterou nelze rekultivovat při tlaku paměti.
Kernelstack množství paměti přidělené zásobníkům jádra.
PageTables množství paměti vyhrazené pro nejnižší úroveň tabulek stránek.
NFS_Unstable NFS stránky odeslané na server, ale dosud nebyly zavázány ke stabilnímu úložišti.
Bounce paměť používaná pro blokové zařízení „bounce buffers“.
WritebackTmp paměť používaná pojistkou pro dočasné vyrovnávací paměti pro zápis.
CommitLimit Toto je celkové množství paměti, které je v současné době k dispozici pro přidělení systému, vyjádřené v kilobajtech. Tento limit je dodržen pouze v případě, že je povoleno strict overcommit accounting (režim 2 v / proc / sys / vm/overcommit_memory). Limit se vypočítá podle vzorce popsaného v /proc / sys / vm / overcommit_memory.
Committed_AS množství paměti aktuálně přidělené v systému. Odevzdaná paměť je součtem veškeré paměti, která byla přidělena procesy, i když ji dosud „nepoužívala“. Proces, který přiděluje 1GB paměti(pomocí malloc (3) nebo podobné), ale dotýká se pouze 300MB této paměti se zobrazí jako použití pouze 300MB paměti, i když má adresový prostor přidělený pro celý 1GB. Tento 1GB je paměť, která byla „zavázána“ VM a může být kdykoli použita alokační aplikací. Pokud je v systému povolen přísný overcommit (režim 2 v /proc / sys/vm/overcommit_memory), alokace, které by překročily CommitLimit, nebudou povoleny. To je užitečné, pokud je třeba zaručit, že procesy nebudou selhat kvůli nedostatku paměti, jakmile bude tato paměť úspěšně přidělena.
VmallocTotal celková velikost oblasti paměti vmalloc.
VmallocUsed množství vmalloc plochy, která se používá. Od Linuxu 4.4 se toto pole již nepočítá a je pevně kódováno jako 0. Viz /proc / vmallocinfo.
VmallocChunk největší souvislý blok oblasti vmalloc, který je volný. Od Linuxu 4.4 se toto pole již nepočítá a je pevně kódováno jako 0. Viz /proc / vmallocinfo.
LazyFree zobrazuje množství paměti označené madvise (2) MADV_FREE.
anonhugepages obrovské stránky bez podpory souborů mapované do tabulek stránek uživatelského prostoru.
ShmemHugePages paměť používaná sdílenou pamětí (shmem) a tmpfs(5) přidělené s obrovskými stránkami
ShmemPmdMapped sdílená paměť mapována do uživatelského prostoru s obrovskými stránkami.
CmaTotal celkem CMA (souvislý alokátor paměti) stránky.
CmaFree volné stránky CMA (Contuguous Memory Allocator).
HugePages_Total Velikost fondu obrovských stránek.
HugePages_Free počet obrovských stránek ve fondu, které ještě nejsou přiděleny.
HugePages_Rsvd Toto je počet obrovských stránek, pro které byl učiněn závazek přidělit z fondu, ale dosud nebylo provedeno žádné přidělení. Tyto vyhrazené obrovské stránky zaručují, že aplikace bude schopna přidělit obrovskou stránku ze skupiny obrovských stránek v době poruchy.
HugePages_Surap Toto je počet obrovských stránek ve fondu nad hodnotou v /proc/sys / vm / nr_hugepages. Maximální počet přebytečných obrovských stránek je řízen / proc / sys / vm / nr_overcommit_hugepages.
Hugepagesize Velikost obrovských stránek.
DirectMap4k počet bajtů RAM lineárně mapovaných jádrem na 4KB stránkách.
DirectMap4M počet bajtů RAM lineárně mapovaných jádrem na 4MB stránkách.
DirectMap2M počet bajtů RAM lineárně mapovaných jádrem na 2MB stránkách.
DirectMap1G x86 s CONFIG_X86_64 a CONFIG_X86_DIRECT_GBPAGES povoleno.

soubor můžeme odfiltrovat pomocí příkazu grep nebo příkazu egrep následujícím způsobem:
grep -E --color 'Mem|Cache|Swap' /proc/meminfo
Linux proc meminfo soubor

pomocí volného příkazu ke kontrole použité a volné využití paměti

výstup /proc/meminfo je silný, ale není uživatelsky přívětivý. Proto musíme použít příkaz zdarma. Příkaz free zobrazuje množství volné a použité paměti v systému Linux. Například:
free
chcete vidět výstup čitelný pro člověka? Zkuste:
free -h
free --human

Ukázkové výstupy:

 total used free shared buff/cache availableMem: 94Gi 15Gi 672Mi 428Mi 78Gi 77GiSwap: 0B 0B 0B
zobrazené sloupce jsou následující:
sloupec popis
celkem celková instalovaná paměť
použitá použitá paměť (vypočtená jako total – free – buffers-cache)
Volný nepoužitá paměť (MemFree a SwapFree v / proc / meminfo)
sdílená paměť používaná většinou tmpfs (Shmem v /proc / meminfo)
vyrovnávací paměti paměť používaná jader buffery (vyrovnávací paměti v /proc / meminfo)
cache paměť používaná mezipamětí stránky a desky (mezipaměti a SReclaimable v /proc / meminfo)
buff / cache součet bufferů a cache
k dispozici odhad, kolik paměti je k dispozici pro spuštění nových aplikací, bez výměny.

můžeme opakovat tisk zdarma příkazový výstup každých N sekund. Například tiskněte výstup každých 5 sekund a ukončete po deseti takových opakováních (počtech) na obrazovce:
free -s 5 -c 10
můžeme řídit výstup volného příkazu následovně:
free
free -k
free -g
free -m

řízení volného výstupu příkazu
volba zobrazit výstup v
-b, — bytes
–kilo kilobajty
–mega megabajtů
–giga gigabajty
–tera terabajty
–peta petabajty
-k, –kibi kibibytes
-m, –mebi mebibytes
-g, –gibi gibibyty
–tebi tebibytes
–pebi pebibytes

příkaz vmstat

příkaz vmstat je výkonný a zobrazuje informace o hardwaru Linuxu, například:

  • procesy
  • paměť
  • stránkování
  • blok IO
  • pasti
  • disky
  • aktivita CPU

otevřete terminál a zadejte následující příkaz:
vmstat
Ukázková relace z mého Ubuntu Linux desktop:

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

projít-w vidět široký výstup na obrazovce:
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
popis pole pro režim VM (paměť a Swap)
pole popis
swpd množství použité virtuální paměti.
zdarma množství nečinné paměti.
buff množství paměti použité jako vyrovnávací paměti.
cache množství paměti použité jako cache.
inact množství neaktivní paměti. (- možnost)
aktivní množství aktivní paměti. (- možnost)
si množství paměti vyměněné z disku (/s).
takže množství paměti vyměněné na disk (/s).

příkaz top a htop

příkazy top a htop poskytují dynamický pohled na běžící systém Linux v reálném čase. To zahrnuje informace o:

příznivci Patreonu pouze vedou 🤓
  • žádné reklamy a sledování
  • hloubkové příručky pro vývojáře a sysadminy na Opensourceflare
  • Připojte se k mému Patreonu a podpořte nezávislé tvůrce obsahu a začněte číst nejnovější příručky:
    • jak nastavit Redis sentinel cluster na Ubuntu nebo Debian Linux
    • jak nastavit SSH klíče s YubiKey jako dvoufaktorovou autentizaci (U2F/FIDO2)
    • jak nastavit MariaDB Galera cluster na Ubuntu nebo Debian Linux
    • podman tutorial pro začátečníky-Část I (spusťte Linuxové kontejnery bez Dockeru a v režimu daemonless)
    • jak chránit Linux proti nepoctivým zařízením USB používajícím USBGuard
    • pokud vaše doména neposílá e – maily, nastavte tato nastavení DNS, abyste se vyhnuli spoofingu a phishingu

Připojte se k Patreonu ➔

  • využití hardwaru a CPU
  • Linux uptime
  • využití paměti a swapu
  • systémové procesy a další

Vezměte prosím na vědomí, že htop není ve výchozím nastavení nainstalován. Můžete jej však snadno nainstalovat na CentOS, Debian, Ubuntu a další operační systémy.

Spusťte následující příkaz:
top
htop

nahlásit využití paměti se sdílenou pamětí rozdělenou proporcionálně

zprávy nástroje smem:

  • využití fyzické paměti s ohledem na stránky sdílené paměti. Nesdílená paměť je hlášena jako USS (Unique Set Size).
  • sdílená paměť je rozdělena rovnoměrně mezi procesy, které tuto paměť sdílejí.
  • nesdílená paměť (USS) plus podíl sdílené paměti procesu se uvádí jako PSS (proporcionální velikost sady).
  • USS a PS zahrnují pouze využití fyzické paměti. Nezahrnují paměť, která byla vyměněna na disk.
  • paměť může být hlášena procesem, uživatelem, mapováním nebo celým systémem. Oba textový režim a grafický výstup jsou k dispozici.

jeden může nainstalovat smem pomocí příkazu apt / apt-get příkaz na Debian / Ubuntu Linux:
sudo apt install smem
spusťte jej následovně:
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

Kontrola využití paměti v Linuxu pomocí GUI

System Monitor je GUI Linux aplikace, která vám ukáže, jaké programy jsou spuštěny a kolik času procesoru, paměti a místa na disku jsou používány. Monitor systému můžeme otevřít z přehledu aktivit. Stiskněte klávesu Super na klávesnici. V přehledu můžete vidět okna a aplikace. Můžete také začít psát a vyhledávat aplikace, například System Monitor. Karta zdroje vám řekne, kolik paměti počítače (RAM) se používá. Chcete-li zkontrolovat, které procesy používají nejvíce paměti: klepněte na kartu Procesy. Klepnutím na záhlaví sloupce paměti seřaďte procesy podle využití paměti.

viz dokumentace pro více informací.

shrnutí

naučili jste se, jak najít využití paměti Linux (RAM)v Linuxu pomocí nástrojů GUI a CLI.

🐧 Získejte nejnovější Návody na Linux, Open Source & DevOps přes
RSS feed Weekly týdenní e-mailový zpravodaj ➔

reklama

Kategorie seznam unixových a linuxových příkazů
Správci stahování wget
dokumentace Nápověda * mandb * man * pinfo
analyzátory místa na disku df * duf * ncdu * pydf
Správa souborů cat * cp * less * mkdir * více * strom
Firewall Alpine Awall * CentOS 8 * OpenSUSE * RHEL 8 * Ubuntu 16.04 * Ubuntu 18.04 * Ubuntu 20.04
Linux desktopové aplikace Skype * Spotify * VLC 3
moderní nástroje bat * exa
síťové nástroje NetHogs * dig * host * ip * nmap
OpenVPN CentOS 7 * CentOS 8 * Debian 10 * Debian 8/9 * Ubuntu 18.04 * Ubuntu 20.04
správce balíčků apk * apt
řízení procesů bg * chroot • cron * disown * fg * pohledy * gtop • iotop * jobs * killall * kill * pidof • pstree * pwdx * čas * vtop
vyhledávání ag • grep * whereis * který
Shell builtins compgen * echo * printf
zpracování textu vyjmout * rev
informace o uživateli skupiny * id * lastcomm • Poslední * lid / libuser-lid • logname * členové * uživatelé * whoami * kdo * w
WireGuard VPN Alpine * CentOS 8 * Debian 10 * Firewall * Ubuntu 20.04

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.