Über Sinn und Unsinn dieser Funktion läßt sich streiten, da sie eigentlich fürs Debugging und Programmieren gedacht ist. Jedenfalls bietet der 2.6er Kernel die Möglichkeit Speichercaches des Filesystems zu leeren. Folgende Möglichkeiten gibt es:

pagecache leeren (Pages, die über einen Eintrag auf der Festplatte verfügen, werden im schnellen RAM vorgehalten):

echo 1 > /proc/sys/vm/drop_caches

dentrie- und inode-cache leeren (mit deren Hilfe wird ein Dateisystem im Speicher abgebildet):

echo 2 > /proc/sys/vm/drop_caches

page-, dentrie- und inode-cache leeren:

echo 3 > /proc/sys/vm/drop_caches

Das top-Tool zeigt diese speziellen Caches nicht gesondert an, aber im htop kann man schön sehen wieviel gerade belegt ist (die Anzeige beim Speicher, h drücken für die Hilfe). Viel Sinn den Cache auf einem Produktivsystem zu leeren machts nicht. Ich vermute sogar eher das Gegenteil, da ja Seiten, die vorher im Cache lagen, bei erneutem Zugriff wieder von der langsamen Platte geholt werden müssen. Und wenn das Betriebssystem den Speicher, der momentan durch den Cache belegt ist, wieder benötigt holt es sich den schon alleine. Aber zumindest wird dann wieder viel freier Speicher im top angezeigt und der Kunde ist beruhigt 😉

Diesen Artikel und viel mehr findet ihr auch im Wiki.