Při odstraňování problémů se zpomalením nebo nesprávným chováním systému nebo aplikace je jednou z prvních věcí, kterou je třeba zkontrolovat, využití systémové paměti.
Tento článek vysvětluje, jak zkontrolovat využití RAM v Linuxu pomocí několika různých příkazů.
free
Příkaz #
free
je nejčastěji používaný příkaz pro kontrolu využití paměti systému Linux. Zobrazuje informace o celkové, použité a volné paměti.
Obecně free
se vyvolá pomocí -h
možnost, která znamená tisk výstupu ve formátu čitelném pro člověka:
free -h
total used free shared buff/cache available
Mem: 3936 1087 252 130 2596 2427
Swap: 0 0 0
Zde je význam jednotlivých sloupců:
- celkem – Celková velikost paměti, kterou mohou aplikace použít.
- použité - Použitá paměť. Počítá se jako:
used = total - free - buffers - cache
- zdarma - Volná / nevyužitá paměť.
- sdíleno - Tento sloupec lze ignorovat; je zobrazen pouze kvůli zpětné kompatibilitě.
- buff/mezipaměť - Kombinovaná paměť, kterou používají vyrovnávací paměti jádra a mezipaměť stránek a slaby. Tuto paměť lze kdykoli získat zpět, pokud to aplikace potřebují.
- k dispozici - Odhad paměti, která je k dispozici pro spouštění nových aplikací, bez výměny.
free
příkaz vytiskne informace o fyzické paměti a systémovém swapu.
top
Příkaz #
top
je nástroj příkazového řádku, který zobrazuje informace o běžících procesech v reálném čase. Zobrazuje také souhrn systému, včetně využití paměti.
Pro vyvolání příkazu jednoduše napište top
:
top
Výstup bude vypadat nějak takto:
Záhlaví výstupu obsahuje informace o celkové, volné a použité fyzické a odkládací paměti systému.
%MEM
sloupec poskytuje informace o použitém podílu dostupné fyzické paměti pro každý spuštěný proces.
/proc/meminfo
#
Nejjednodušší způsob, jak zkontrolovat využití paměti RAM, je zobrazit obsah /proc/meminfo
virtuální soubor. Tento soubor používá free
, top
, ps
a další příkazy systémových informací.
Použijte less
nebo cat
pro zobrazení obsahu /proc/meminfo
soubor:
cat /proc/meminfo
Soubor obsahuje velké množství informací o systémové paměti a využití swapu:
MemTotal: 4030592 kB
MemFree: 401804 kB
MemAvailable: 2507504 kB
...
Informace z /proc/meminfo
soubor lze analyzovat a použít ve skriptech shellu.
ps_mem
Skript #
ps_mem
je skript Pythonu, který hlásí využití paměti RAM pro jednotlivé programy. Funguje s Pythonem 2 i 3 a lze jej nainstalovat pomocí pip
:
sudo pip3 install ps_mem
Spuštění ps_mem
vyžaduje oprávnění správce:
sudo ps_mem
Výstup bude zahrnovat využití paměti každým spuštěným programem ve vzestupném pořadí:
Private + Shared = RAM used Program
...
11.9 MiB + 20.2 MiB = 32.1 MiB nginx (4)
8.2 MiB + 42.4 MiB = 50.6 MiB systemd-journald
55.8 MiB + 307.2 MiB = 363.0 MiB php-fpm7.4 (6)
233.9 MiB + 234.0 MiB = 467.9 MiB redis-server
578.2 MiB + 578.6 MiB = 1.1 GiB mysqld
---------------------------------
2.2 GiB
=================================
Tento skript je užitečný, když chcete zjistit, který spuštěný program zabírá většinu systémové paměti.
Závěr č.
Ukázali jsme vám několik příkazů, které můžete použít ke kontrole využití systémové paměti.
Pokud máte nějaké dotazy nebo připomínky, zanechte prosím níže komentář.