Quelle1)

Temporäres Filesystem tmpfs

Wenn der Kuskus-Server zu wenig tmp-Speicherplatz hat (ist eine eigene Partition):

mount -t tmpfs -o size=4G none /tmp/kuskus

4. Temporäre Dateien wirklich temporär handhaben

Linuxprogramme legen temporäre Dateien normalerweise in /tmp ab. Dieses Verzeichnis liegt auf irgend einer Festplatte. Viele Programme (vor allem unter X) versäumen es aber, nach deren Beendigung ihren temporären „Müll“ wieder zu beseitigen, so dass die Partition, die /tmp enthält, langsam vollgemüllt wird. Da temporäre Dateien nach dem Ende des verursachenden Programms nicht mehr gebraucht werden, haben sie auf einer Festplatte nichts zu suchen. Seit Kernel 2.4.4 gibt es nun das tmpfs, ein Dateisystem, dass in einer dynamischen, also je nach Bedarf wachsenden und schrumpfenden RAM-Disk residiert. Bei Bedarf kann diese Art RAM-Disk sogar ausgelagert werden. Wird die RAM-Disk mit den temporären Dateien ausgelagert, liegen diese zwar auch wieder auf einer Festplatte, aber sie verschwinden von dort auch wieder. Spätestens nach einem Shutdown ist der Müll weg.

Um nun temporäre Dateien von der Festplatte zu verbannen, sind folgende Schritte erforderlich: Es werden die Sourcen des Kernels 2.4.4 (oder höher) installiert.

Es wird ein neuer Kernel kompiliert, der folgendes als festen Bestandteil enthält:

 Virtual memory file system support (CONFIG_TMPFS=y)

Der neue Kernel wird gebootet.

In der Datei /etc/fstab wird folgender Eintrag eingefügt:

tmpfs    /tmp    tmpfs    defaults,size=*m 0  0

* = Zahl. Gibt die maximale Größe des tmpfs in Megabytes an.

Alle Anwendungen, die temporäre Dateien erzeugen, werden beendet.

Der Inhalt von /tmp wird gelöscht.

Es wird „mount /tmp“ ausgeführt. Ab jetzt werden temporäre Dateien wirklich temporär gehandhabt. Es gibt keine allgemeine Regel für die maximale Größe des tmpfs. Diese hängt von den verwendeten Programmen ab. Unter X entstehen meist mehr temporäre Dateien als an der Konsole. Die maximale Größe sollte aber nicht größer als das verfügbare RAM sein und muss kleiner als der gesamte verfügbare Speicher (RAM + swap) sein! Bei reichlich RAM (> 128 MB) kann man die Größe auch erst einmal auf size=128m begrenzen. Sollte es wirklich einmal eng werden, kann die Größe mit remount nachträglich geändert werden, wozu natürlich laufende Anwendungen erst beendet werden müssen. Um temporären Müll auf einem tmpfs los zu werden, muss nämlich keineswegs neu gebootet werden! Es genügt, alle Anwendungen, die temporäre Dateien erzeugen, zu beenden und dann mit

umount /tmp
mount /tmp

den Müll zu entsorgen.

Und wer nicht glaubt, dass das tmpfs dynamisch arbeitet, kann sich leicht mit „df“ und „free -t“ davon überzeugen. „df“ zeigt den mit „size“ vorgegebenen Maximalwert als verfügbaren Speicherplatz und den aktuellen Platzverbrauch an. „free -t“ hingegen zeigt den tatsächlich freien Speicher an. Wenn also in /tmp gerade nichts liegt, belegt tmpfs auch keinen Speicher. Dies ist der enorme Vorteil gegenüber statischen RAM-Disks, die ja immer gleich Speicher entsprechend ihrer Größe belegen, egal wie viel Platz tatsächlich auf der RAM-Disk gerade belegt ist. Ganz streng genommen belegt der Kernel natürlich ein paar kB RAM, um das tmpfs bereitstellen zu können.

Diese Prozedur empfiehlt sich auch für /var/tmp, wo ebenfalls Programme temporäre Dateien ablegen.

ACHTUNG! Die Summe der Maximalgrößen aller tmpfs muss kleiner als der gesamte verfügbare Speicher (RAM + swap) sein!