Skatieties available, nevis free
Linux citādi neizmantotu atmiņu lieto kā diska kešatmiņu, tāpēc maz brīvas atmiņas veselā serverī ir normāli. Kolonna available ir kodola novērtējums, cik atmiņas var saņemt jauni uzdevumi, neizmantojot swap. Tieši šis skaitlis jāvēro. Precīzs used aprēķins ir atkarīgs no rīka versijas, tāpēc nesalīdziniet to starp dažādām sistēmām.
free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfoKo no kešatmiņas var un ko nevar atbrīvot
Lapu kešatmiņu parasti var atbrīvot, kad lietotnēm nepieciešama atmiņa. Arī koplietojamā atmiņa un tmpfs (Shmem) parādās kešatmiņas uzskaitē, taču tos nevar vienkārši atmest, jo tie glabā datus, kuriem nav kopijas diskā. Tāpēc liela kešatmiņa kopā ar mazu available atmiņas apjomu bieži nozīmē lielu tmpfs vai koplietojamās atmiņas segmentu.
df -h -t tmpfs
sudo slabtop -o | head -15Aizņemta swap vieta pati par sevi nav problēma
Serveris var nedēļām ilgi turēt reti izmantotas lapas swap apgabalā bez kaitīgām sekām. Problēmas rada nepārtraukta pārvietošana. Vērojiet vmstat kolonnas si un so: vērtības, kas pastāvīgi pārsniedz nulli, nozīmē aktīvu lapu pārvietošanu starp RAM un swap, un tā ir reāla atmiņas trūkuma pazīme.
swapon --show
vmstat 1 5Noskaidrojiet, kas izmanto atmiņu
Sakārtojiet procesus pēc rezidentās atmiņas. RSS katram procesam pieskaita lapas, ko tas koplieto ar citiem procesiem, tāpēc vairāku procesu vērtības nevar vienkārši saskaitīt. Rīki ar PSS atbalstu, piemēram, smem, sniedz precīzāku summu, ja tie ir instalēti.
ps -eo pid,user,rss,comm --sort=-rss | head -15Atpazīstiet īstu atmiņas trūkumu
Pazīmes ir maz pieejamās atmiņas, nepārtraukta lapu pārvietošana uz swap un no tās, kā arī procesi, kurus atmiņas trūkuma dēļ pārtrauc out-of-memory killer. Pārbaudiet kodola žurnālu. Nepalaidiet drop_caches, lai skaitļi izskatītos labāk: tas tikai liek serverim atkal lasīt no diska un neko neatrisina.
sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'Atmiņa lietotnē CH-J Server Manager
System Monitor nolasa šīs vērtības, izmantojot SSH. Linux vidē used tiek definēts kā MemTotal − MemFree − Buffers − Cached − SReclaimable, bet available ir kodola novērtējums. Koplietojamā atmiņa ir Cached daļa un nav atbrīvojama; joslas kategorijas nepārklājas. Tā kā formula atšķiras no dažām free versijām, skaitļi var precīzi nesakrist. Tiek parādīta arī swap un tās lietojuma vēsture. ZFS ARC netiek apstrādāta atsevišķi, tāpēc hostos ar ZFS to pieskaita izmantotajai atmiņai.