Wat is op Linux nu echt mijn memory gebruik?

Een leuke discussie de afgelopen dagen op kantoor ging over het meten van het memory gebruik op een Linux machine. Het is iets klein maar wel fundamenteel omdat monitoring van memory gebruik veelvuldig toegepast wordt.

Als je zelf op Linux inlogt ben je snel geneigd om free -m te typen in de shell en het resultaat daarvan te pakken.

$ free -m
total used free shared buffers cached
Mem: 7983 1684 6298 0 39 278
-/+ buffers/cache: 1366 6616
Swap: 8191 0 8191<br />

De regel achter Mem: wordt vaak gebruikt. Helaas negeren veel monitoringtools de buffers / cache regel en geven ze een scheef beeld naar mijn mening.

Onderdeel van het aantal MB’s wat in gebruik zou zijn wordt gereserveerd als buffer of cache. Dit geheugen is niet daadwerkelijk in gebruik en het OS gaat heel slim om met het gebruik van dit geheugen. Het buffer houdt metadata bij over bepaalde informatie op de harde schijf, dit zodat deze informatie snel te benaderen is. Het cache is echt bestandsinhoud in het geheugen voor nog snellere benadering. Beiden worden van tevoren gereserveerd en worden niet altijd gebruikt. Je kunt zowel buffer als cache geheugen opruimen.

Voor veel beheerders heeft het de voorkeur om het geheugen gebruikt te rapporteren exclusief het buffer en cache geheugen.

Je kunt het free -m commando heel simpel aanpassen naar onderstaande om het juiste te rapporteren.

free -m | grep cache: | awk '{print $3,$4,$3+$4}'

Het 1e getal is het aantal MB’s used, het 2e getal is het aantal MB’s vrij en het 3e getal is het totaal aantal MB’s beschikbaar in de machine.

Wil je meer lezen over deze discussie:

Over Coen Meerbeek

Splunk consultant @ Blue Factory, eigenaar en oprichter @ BuzzardLabs, basketbalspeler en Xbox-gamer. Lees meer van Coen op Launchers.nl en Twitter.

Laat wat van je horen

*