CH-J Server Managerserverio valdymas per SSH
Meniu
Visi vadovai ir straipsniai →

Kaip suprasti RAM, podėlio ir swap rodmenis Linux serveryje

Ką reiškia free stulpeliai, kodėl didelis atminties naudojimas dažnai yra normalus ir kokie požymiai iš tiesų rodo atminties trūkumą.

Stebėkite available, o ne free

Linux naudoja kitaip nenaudojamą atmintį kaip disko podėlį, todėl mažas laisvos atminties kiekis tinkamai veikiančiame serveryje yra normalu. Stulpelis available yra branduolio įvertis, kiek atminties gali gauti naujos užduotys nenaudojant swap. Būtent šį skaičių reikia stebėti. Tikslus used skaičiavimas priklauso nuo įrankio versijos, todėl nelyginkite jo skirtingose sistemose.

free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfo

Ką iš podėlio galima atlaisvinti, o ko ne

Puslapių podėlį paprastai galima atlaisvinti, kai programoms prireikia atminties. Bendroji atmintis ir tmpfs (Shmem) taip pat įtraukiami į podėlį, tačiau jų negalima tiesiog pašalinti, nes juose laikomi duomenys, kurių kopijos diske nėra. Todėl didelis podėlis ir mažas available atminties kiekis dažnai reiškia didelį tmpfs arba bendrosios atminties segmentą.

df -h -t tmpfs
sudo slabtop -o | head -15

Naudojama swap savaime nėra problema

Serveris gali savaites laikyti retai naudojamus puslapius swap srityje be žalos. Problemų sukelia nuolatinis perkėlimas. Stebėkite vmstat stulpelius si ir so: nuolat už nulį didesnės reikšmės reiškia, kad sistema aktyviai perkelia puslapius tarp RAM ir swap, o tai yra tikro atminties trūkumo požymis.

swapon --show
vmstat 1 5

Raskite, kas naudoja atmintį

Surikiuokite procesus pagal rezidentinę atmintį. RSS kiekvienam procesui priskaičiuoja puslapius, kuriuos jis bendrina su kitais procesais, todėl kelių procesų reikšmių negalima tiesiog sudėti. PSS palaikantys įrankiai, pavyzdžiui, smem, pateikia tikslesnę sumą, jei yra įdiegti.

ps -eo pid,user,rss,comm --sort=-rss | head -15

Atpažinkite tikrą trūkumą

Požymiai – mažai prieinamos atminties, nuolatinis puslapių perkėlimas į swap ir iš jos bei procesai, kuriuos nutraukia atminties trūkumo valdymo mechanizmas. Patikrinkite branduolio žurnalą. Nevykdykite drop_caches vien tam, kad skaičiai atrodytų geriau: tai tik priverčia serverį iš naujo skaityti iš disko ir nieko neišsprendžia.

sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'

Atmintis programoje CH-J Server Manager

System Monitor nuskaito šias reikšmes per SSH. Linux sistemoje used apskaičiuojama kaip MemTotal − MemFree − Buffers − Cached − SReclaimable, o available yra branduolio įvertis. Bendroji atmintis yra Cached dalis ir negali būti atlaisvinta, o juostos kategorijos nepersidengia. Kadangi formulė skiriasi nuo kai kurių free versijų, skaičiai gali nevisiškai sutapti. Taip pat rodoma swap ir jos naudojimo istorija. ZFS ARC atskirai nevertinama, todėl kompiuteriuose su ZFS ji skaičiuojama kaip naudojama atmintis.

Išsamūs dokumentai

man: free →

man: proc_meminfo →

Biometrinis atrakinimas ir saugumas →