Urmărește available, nu free
Linux folosește memoria care altfel ar rămâne neutilizată drept cache pentru disc, așa că puțină memorie liberă pe un server sănătos este normală. Coloana available este estimarea nucleului privind memoria pe care o pot primi sarcinile noi fără a recurge la swap. Acesta este numărul de urmărit. Calculul exact pentru used depinde de versiunea instrumentului, deci nu compara această valoare între sisteme diferite.
free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfoCe poate și ce nu poate fi eliberat din cache
Memoria cache de pagini poate fi de obicei eliberată când aplicațiile au nevoie de memorie. Memoria partajată și tmpfs (Shmem) apar și ele în cache, dar nu pot fi pur și simplu eliminate, deoarece conțin date fără o copie pe disc. Un cache mare și puțină memorie available înseamnă, așadar, adesea un tmpfs sau un segment de memorie partajată de dimensiuni mari.
df -h -t tmpfs
sudo slabtop -o | head -15Swap ocupat nu înseamnă automat o problemă
Un server poate păstra pagini rar folosite în swap timp de săptămâni fără consecințe negative. Problema este transferul continuu. Urmărește coloanele si și so din vmstat: valorile care rămân peste zero înseamnă că sistemul transferă activ pagini între RAM și swap, ceea ce indică o lipsă reală de memorie.
swapon --show
vmstat 1 5Află ce folosește memoria
Sortează procesele după memoria rezidentă. RSS numără paginile partajate între procese în fiecare dintre ele, așa că valorile mai multor procese nu pot fi pur și simplu adunate. Instrumentele cu PSS, precum smem, oferă un total mai reprezentativ, dacă sunt instalate.
ps -eo pid,user,rss,comm --sort=-rss | head -15Recunoaște o lipsă reală de memorie
Semnele sunt puțină memorie disponibilă, transferuri constante între RAM și swap și procese oprite de mecanismul out-of-memory killer. Verifică jurnalul nucleului. Nu rula drop_caches pentru ca numerele să arate mai bine: doar obligă serverul să citească din nou de pe disc și nu rezolvă nimic.
sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'Memoria în CH-J Server Manager
System Monitor citește aceste valori prin SSH. Pe Linux definește used ca MemTotal − MemFree − Buffers − Cached − SReclaimable, iar available ca estimarea nucleului. Memoria partajată face parte din Cached și nu poate fi eliberată, iar categoriile din bară nu se suprapun. Deoarece formula diferă de cea din unele versiuni de free, numerele pot să nu coincidă exact. Arată și swap cu istoricul utilizării. ZFS ARC nu este tratat separat, așa că pe gazdele cu ZFS este inclus în memoria utilizată.