Tutoriel Linux

Zdarma pod Linuxem: pochopení dostupné RAM a mezipaměti

Débutant4 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

Spustíte volný -h na serveru a ve sloupci uvolnit

Abyste zjistili, zda počítači skutečně chybí paměť, nejprve se podívejte k dispozici, poté swap a aktivita paměti v čase. Jedna hodnota nestačí. Zde je metoda, kterou používám před zastavením služby nebo přidáním paměti RAM.

Tux analyzuje RAM moduly a opakovaně použitelnou mezipaměť v Linuxu
V Linuxu může být část mezipaměti opět k dispozici pro aplikace.

Začněte s `free -h` a sloupcem `available`

volný -h

Možnost -h automaticky vybere čitelnou jednotku, například MiB nebo GiB. Na řádku pamZačněte s těmito třemi sloupci:

  • celkový známá použitelná paměť jádra;
  • k dispozici odhadovaná paměť, kterou může nový proces získat bez nutnosti swapu;
  • uvolnit

je obecně užitečnější než uvolnitJádro ví, jak uvolnit část mezipaměti a obnovitelných struktur. Stroj s 300 MiB v uvolnit ale 4 GiB v k dispozici nedochází mu RAM.

Sloupce uvolnit použitý se počítá z celkový k dispoziciNejedná se tedy o přesný součet paměti RSS všech procesů.

  • sdílené používá paměť hlavně tím, tmpfs ;
  • nárazníky
  • skrytý
  • buff/mezipaměť seskupuje vyrovnávací paměti a mezipaměť do standardního zobrazení.

K oddělení A skrytýPoužijte širokoúhlý displej:

volný -w -h

Tento pohled pomáhá pochopit alokaci, ale nemění diagnózu: otázkou zůstává, kolik paměti lze obnovit bez swapu a zda se tato rezerva trvale sníží.

Proč Linux zaplňuje RAM mezipamětí

Nevymazávat mezipaměti pomocí drop_caches uměle zvednout páteř uvolnitMažete užitečnou mezipaměť a nutíte systém znovu načíst data. Tato operace se používá hlavně pro kontrolované testování, nikoli pro běžnou údržbu serveru.

Zdroj hodnot si můžete ověřit v /proc/meminfo :

grep -E '^(CelkemPaměti|VolnáPaměť|DostupnáPaměť|VyrovnávacíPaměť|UloženoVMezipaměti|UvolnitelnáPaměť|CelkemProSwap|VolnáProSwap):' /proc/meminfo

MemAvailable je odhad vytvořený jádrem. Zohledňuje volnou paměť a část obnovitelných mezipamětí, bez předpokladu, že lze celou mezipaměť obnovit okamžitě.

Vyberte jednotky a prohlédněte si několik vzorků

Pro porovnání více strojů nebo pro naplnění odečtu ponechte pevnou jednotku. -m zobrazuje mebibajty. Pro desetinné jednotky přidejte --li :

volný -m
volný -h --si

Také se vyhněte vyvozování závěrů z jediného izolovaného záběru. uvolnit může opakovat odečet každé dvě sekundy a zastavit se po pěti měřeních:

volný -h -s 2 -c 5

Podívejte se, jestli k dispozici

Křížové odkazování na RAM pomocí swapu a vmstatu

Linka Vyměňte z uvolnit Indikuje jeho obsazenost, ale ne aktivitu. Několik gigabajtů dlouho používaných dat nedokazuje, že stroj stále vyměňuje stránky. Vypište aktivní oblasti a poté je pozorujte. -li A tak s vmstat :

swapon --ukázat
vmstat 1 5

V vmstatPrvní řádek pro okamžitou aktivitu ignorujte: představuje průměry od začátku. Následující řádky zobrazují vzorky. Opakované hodnoty v -li Nebo spojené s a k dispozici Nízké využití paměti a zpomalení naznačují skutečný tlak na paměť.

Průvodce po swap pod Linuxem vysvětluje, kdy je jeho použití normální a proč jeho vymazání bez paměti RAM může zamrznout počítač.

Najděte procesy, které skutečně spotřebovávají paměť

Pokud indikátory potvrzují napětí, identifikujte procesy předtím, než podniknete kroky:

ps -eo pid,uživatel,komunikace,%mem,rss --sort=-rss | hlavička
htop

RSS Toto měří rezidentní fyzickou paměť procesu, ale některé stránky mohou být sdíleny mezi více procesy. Sečtení všech hodnot RSS proto může nadhodnotit skutečnou spotřebu. Použijte tento seznam k identifikaci potenciálního zákazníka a poté zkontrolujte službu, její konfiguraci a protokoly.

V htopSeřadit podle paměti, načíst PID a název služby a poté zkontrolovat její stav:

stav systemctl příslušná služba --no-pager
journalctl -u service-concerne -n ​​​​100 --no-pager

Neukončujte první proces na začátku seznamu. Databáze často používá RAM jako mezipaměť aplikace a může respektovat její konfiguraci. Nejprve zkontrolujte, zda je spotřeba RAM stabilní, očekávaná a uvolněná při poklesu zátěže.

Kdy dojít k závěru, že je skutečný nedostatek RAM

k dispozici zůstává velmi nízká, vmstat ukazuje opakované výměny, doba odezvy se snižuje a jádro nakonec signalizuje chybu OOM.

journalctl -k -b | grep -Ei 'nedostatek paměti|oom-killer|ukončený proces'
dmesg -T | grep -Ei 'nedostatek paměti|oom-killer|ukončený proces'

V tomto případě opravte příčinu: nesprávně nastavený limit paměti, únik služeb, nadměrné zatížení nebo nedostatečná velikost. Odkládací prostor přidejte pouze jako bezpečnostní síť, nikoli jako náhradu za trvale nasycenou RAM. Zdarma manuálová stránka dokumentuje výpočty svých sloupců, zatímco proc_meminfo(5) popisuje čítače poskytované jádrem.

sudo apt update && sudo apt upgrade