Se på available frem for free
Linux bruger ellers ubrugt hukommelse som diskcache, så lidt ledig hukommelse er normalt på en sund server. Kolonnen available er kernens skøn over, hvor meget hukommelse nye opgaver kan få uden at bruge swap. Det er det tal, du skal holde øje med. Den præcise beregning af used afhænger af værktøjets version, så sammenlign ikke værdien mellem forskellige systemer.
free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfoHvad cachen kan og ikke kan frigive
Sidecachen kan normalt frigives, når programmer har brug for hukommelse. Delt hukommelse og tmpfs (Shmem) vises også under cache, men kan ikke bare kasseres, fordi de indeholder data uden en kopi på disken. En stor cache med lidt tilgængelig hukommelse betyder derfor ofte et stort tmpfs eller et stort segment med delt hukommelse.
df -h -t tmpfs
sudo slabtop -o | head -15Brug af swap er ikke automatisk et problem
En server kan beholde sjældent brugte sider i swap i ugevis uden skade. Det er den konstante flytning, der gør ondt. Hold øje med kolonnerne si og so i vmstat: værdier, der bliver ved med at ligge over nul, betyder, at systemet aktivt flytter sider til og fra swap, hvilket er tegn på en reel mangel.
swapon --show
vmstat 1 5Find det, der bruger hukommelsen
Sortér processer efter resident hukommelse. RSS tæller sider, der deles mellem processer, med i hver enkelt proces, så værdierne fra flere processer kan ikke blot lægges sammen. Værktøjer med PSS, såsom smem, giver en mere retvisende sum, hvis de er installeret.
ps -eo pid,user,rss,comm --sort=-rss | head -15Genkend reel mangel på hukommelse
Tegnene er lidt tilgængelig hukommelse, konstant flytning til og fra swap og processer, der afsluttes af out-of-memory-killeren. Kontrollér kerneloggen. Kør ikke drop_caches for at få tallene til at se bedre ud: det tvinger blot serveren til at læse fra disken igen og løser intet.
sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'Hukommelse i CH-J Server Manager
System Monitor læser disse værdier over SSH. På Linux defineres used som MemTotal − MemFree − Buffers − Cached − SReclaimable og available som kernens skøn. Delt hukommelse er en del af Cached og kan ikke frigives, og kategorierne i bjælken overlapper ikke. Da formlen afviger fra visse versioner af free, stemmer tallene muligvis ikke helt overens. swap vises også med sin forbrugshistorik. ZFS ARC behandles ikke særskilt og tæller derfor som brugt hukommelse på ZFS-værter.