Sledujte available, nie free
Linux používa inak nevyužitú pamäť ako diskovú vyrovnávaciu pamäť, takže málo voľnej pamäte je na zdravom serveri normálne. Stĺpec available je odhad jadra, koľko pamäte môže získať nová úloha bez použitia swap. Sledujte práve toto číslo. Presný výpočet used závisí od verzie nástroja, preto ho neporovnávajte medzi rôznymi systémami.
free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfoČo sa dá a nedá uvoľniť z vyrovnávacej pamäte
Stránkovú vyrovnávaciu pamäť možno zvyčajne uvoľniť, keď aplikácie potrebujú pamäť. Pod cache sa zobrazuje aj zdieľaná pamäť a tmpfs (Shmem), ale tie nemožno jednoducho zahodiť, pretože obsahujú dáta bez kópie na disku. Veľká vyrovnávacia pamäť pri nízkej hodnote available preto často znamená veľký tmpfs alebo segment zdieľanej pamäte.
df -h -t tmpfs
sudo slabtop -o | head -15Používaný swap nie je automaticky problém
Server môže bez škody ponechávať zriedka používané stránky v swap celé týždne. Problémom je neustály presun. Sledujte stĺpce si a so v príkaze vmstat: hodnoty trvalo nad nulou znamenajú aktívne presúvanie medzi RAM a swap, čo je príznakom skutočného nedostatku pamäte.
swapon --show
vmstat 1 5Zistite, čo využíva pamäť
Zoraďte procesy podľa rezidentnej pamäte. RSS započítava stránky zdieľané medzi procesmi každému z nich, takže hodnoty viacerých procesov nemožno jednoducho sčítať. Nástroje s PSS, napríklad smem, poskytujú presnejší súčet, ak ich máte nainštalované.
ps -eo pid,user,rss,comm --sort=-rss | head -15Rozpoznajte skutočný nedostatok
Príznakmi sú málo dostupnej pamäte, neustále používanie swap a procesy ukončené mechanizmom out-of-memory killer. Skontrolujte log jadra. Nespúšťajte drop_caches len preto, aby čísla vyzerali lepšie: server potom iba znovu číta z disku a nič sa tým nevyrieši.
sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'Pamäť v CH-J Server Manager
System Monitor číta tieto hodnoty cez SSH. Na Linuxe definuje used ako MemTotal − MemFree − Buffers − Cached − SReclaimable a available ako odhad jadra. Zdieľaná pamäť je súčasťou Cached a nemožno ju uvoľniť; kategórie v pruhu sa neprekrývajú. Keďže sa vzorec líši od niektorých verzií free, čísla sa nemusia presne zhodovať. Zobrazuje aj swap s históriou využitia. ZFS ARC sa nevyhodnocuje samostatne, takže na hostiteľoch so ZFS sa počíta ako použitá pamäť.