Kijk naar available, niet naar free
Linux gebruikt anders ongebruikt geheugen als schijfcache. Weinig vrij geheugen op een gezonde server is dus normaal. De kolom available is de schatting van de kernel van hoeveel geheugen nieuwe taken kunnen krijgen zonder swap te gebruiken. Dat is het getal om in de gaten te houden. De precieze berekening van used hangt af van de versie van het gereedschap, dus vergelijk die waarde niet tussen verschillende systemen.
free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfoWat wel en niet uit de cache kan worden vrijgemaakt
De paginacache kan meestal worden vrijgemaakt wanneer toepassingen geheugen nodig hebben. Gedeeld geheugen en tmpfs (Shmem) vallen ook onder cache, maar kunnen niet zomaar worden weggegooid: ze bevatten gegevens waarvan geen kopie op schijf staat. Een grote cache met weinig available geheugen wijst daarom vaak op een grote tmpfs of een groot gedeeld geheugensegment.
df -h -t tmpfs
sudo slabtop -o | head -15Gebruikte swap is niet automatisch een probleem
Een server kan zelden gebruikte pagina’s wekenlang zonder nadelige gevolgen in swap bewaren. Voortdurende verplaatsing veroorzaakt problemen. Let op de kolommen si en so in vmstat: waarden die boven nul blijven betekenen dat het systeem actief pagina’s tussen RAM en swap verplaatst. Dat wijst op een echt tekort.
swapon --show
vmstat 1 5Achterhaal wat het geheugen gebruikt
Sorteer processen op resident geheugen. RSS telt pagina’s die processen delen bij elk van die processen mee. De waarden van meerdere processen kunnen daarom niet simpelweg worden opgeteld. Gereedschappen met PSS, zoals smem, geven een representatiever totaal als ze zijn geïnstalleerd.
ps -eo pid,user,rss,comm --sort=-rss | head -15Herken een echt tekort
De signalen zijn weinig beschikbaar geheugen, voortdurende verplaatsing tussen RAM en swap en processen die door de out-of-memory killer worden beëindigd. Controleer het kernellogboek. Voer drop_caches niet uit om de cijfers er beter uit te laten zien: daardoor moet de server alleen opnieuw van schijf lezen en wordt niets opgelost.
sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'Geheugen in CH-J Server Manager
System Monitor leest deze waarden via SSH. Op Linux definieert het used als MemTotal − MemFree − Buffers − Cached − SReclaimable en available als de schatting van de kernel. Gedeeld geheugen is onderdeel van Cached en kan niet worden vrijgemaakt; de categorieën in de balk overlappen elkaar niet. Omdat de formule verschilt van sommige versies van free, komen de getallen mogelijk niet exact overeen. Het toont ook swap met de gebruiksgeschiedenis. ZFS ARC wordt niet apart behandeld en telt op ZFS-hosts dus als gebruikt geheugen.