/usr/home

just some random thoughts

free, wired, active und inactive Speicher erklärt (FreeBSD, OS X)

Ich habe mich neulich über das entwas andere Top-Verhalten unter FreeBSD und Mac OS X gewundert. Denn der freie Speicher wurde mir mit etwa 150MB angegeben, obwohl mein Host 8GB Ram hat und zu dieser Zeit kaum Anwendungen liefen die so viel Speicher gebraucht hätten. Im Internet habe ich nun eine Erklärung ([link][http://sg80bab.blogspot.de/2007/03/is-my-mac-using-too-much-memory.html?m=1]) dazu gefunden.

Unter Linux gibts nur used, free und buffered während die beiden BSD-Systeme hier etwas genauer unterscheiden:

  • wired: vom OS verwendeter Speicher. Darunter fallt u.a. der ZFS-Cache.

  • used: von Anwendungen verwendeter Speicher. Allerdings kann eine Anwendung auch “wired”-Speicher verwenden. VirtualBox macht das zum Beispiel.

  • unused: freier Speicher, der schon mal allokiert wurde. Er wird nicht freigegeben, bis er gebraucht wird. Das hat den Vorteil, dass er einer Anwendung schnell wieder zur Verfügung steht sobald sie wieder gestartet wurde.

  • free: Speicher, der wirklich frei ist und nich nie allociert wurde. D.h. meistens sehr klein.

  • buffered: selbsterklärend.

  • cache: ich denke auch selbsterklärend.

Dieses Verhalten schein auch der Grund zu sein, warum htop unter FreeBSD falsche Speicherangaben macht.