Der Page Cache (auch Seitencache oder Puffercache) ist der Speicherbereich des Linux-Kernels, der kürzlich gelesene oder geschriebene Dateiinhalte im RAM vorhält. Wird eine Datei erneut gelesen, liefert der Kernel die Daten direkt aus dem Arbeitsspeicher statt von der Festplatte – das ist oft um Größenordnungen schneller.

Wie der Page Cache funktioniert

Linux puffert Dateizugriffe in Einheiten von Speicherseiten (meist 4 KiB, siehe Memory Paging). Gelesene Seiten landen im Cache; beim erneuten Zugriff spart der Kernel den Plattenzugriff. Auch Schreibvorgänge gehen zuerst in den Cache (Write-back): Geänderte, noch nicht auf dem Datenträger gesicherte Seiten heißen dirty pages.

Dirty Pages und Writeback

Dirty Pages werden verzögert auf den Datenträger geschrieben – entweder nach Ablauf von dirty_writeback_centisecs, wenn der Anteil den Schwellwert dirty_background_ratio (Standard 10 %) überschreitet, oder wenn viel Speicher benötigt wird. Dafür ist im Kernel der pdflush-Mechanismus (heute Writeback-Threads) zuständig. sync() oder fsync() erzwingen das sofortige Schreiben.

Cache beobachten und leeren

free -h              # Spalte "cache" zeigt den Page Cache
cat /proc/meminfo    # Cached: + SReclaimable
sync; echo 1 > /proc/sys/vm/drop_caches   # freigeben (nicht-destruktiv)

drop_caches verwirft nur nicht-dirty Seiten – laufende Prozesse und ungesicherte Daten bleiben unberührt. Der Page Cache wird automatisch freigegeben, wenn Anwendungen mehr Speicher brauchen (Linux „gibt“ Cache-Speicher zurück), daher ist er in free als „verfügbar“ eingerechnet.

Verwandte Grundlagen: Cache-Speicher, LRU-Cache, Seitenersatz, Seitenrahmen.