Reference - tmpfs

Sprachenübersicht/Betriebssysteme/Linux/Dateisysteme

tmpfs

Diese Seite wurde 18174 mal aufgerufen.

Dieser Artikel wurde in einem Wikiweb System geschrieben, das heißt, Sie können die Artikel jederzeit editieren, wenn Sie einen Fehler gefunden haben, oder etwas hinzufügen wollen.

Editieren Versionen Linkpartnerschaft Bottom Printversion

Keywords: tmpfs /tmp temp file system

Erklärung Top



Hierbei handelt es sich um ein Dateisystem, welches für temporäre Ordner verwendet wird. Die Besonderheit liegt darin, dass die Daten nicht auf der Festplatte sondern im Arbeitsspeicher liegen. Erst bei voller Auslastung des RAMs werden die Daten auf der Swap-Partition abgelegt. Somit weißt es eine enge Verwandschaft mit der viel verwendeten RAMDisk auf. Der Unterschied liegt jedoch darin, dass eine RAMDisk immer ihre gesamte Größe im Arbeitsspeicher belegt und tmpfs lediglich den verwendeten Speicher.

tmpfs wird häufig für das /tmp-Verzeichnis verwendet und hat dabei einen großen Geschwindigkeitsvorteil gegenüber festplattenbeheimateten Daten. Der Nachteil liegt darin, dass alle Daten nach dem Abschalten des Rechners in diesem Verzeichnis verloren sind.

Einrichten Top


Da wir später einen Verglich ziehen können möchten, testen wir zuerst die derzeitige Performance des /tmp-Verzeichnisses mit dem Befehl dd.

Code:


$ dd bs=1024 if=/dev/zero of=/tmp/testdatei count=204800
204800+0 records in
204800+0 records out
209715200 bytes transferred in 8.80204 seconds (23825749 bytes/sec)



Um beispielsweise das /tmp-Verzeichnis mit tmpfs zu verwenden, ist folgender Eintrag in der /etc/fstab notwendig:

/etc/fstab:


none            /tmp            tmpfs   defaults                0       0



Ab dem nächsten Reboot sollte das /tmp-Verzeichnis nun auf dem Arbeitsspeicher liegen. Der Befehl df -m müsste fortan diese Zeile in der Antwort enthalten:

Code:


$ df -m
Filesystem            Size  Used Avail Use% Mounted on
none                  252M     0  252M   0% /tmp



Standardmäßig verwendet tmpfs immer 50% des Arbeitsspeichers, in diesem Fall (512-8)[*]MB / 2 = 252MB..stimmt. Um eine andere Größe für die Partition zu verwenden, muss der Parameter size verwendet werden, der auf die Zusätze k (Kibibyte), m (Mibibyte) und g (Gibibyte) achtet. Z.B.:

Code:


mount -t tmpfs -o size=512m none /tmp



Weitere Optionen können in der mount-Manpage nachgelesen werden.

Nun ist es an der Zeit, die Geschwindigkeit des temporären Verzeichnisses auszuprobieren.

Code:


$ dd bs=1024 if=/dev/zero of=/tmp/testdatei count=204800
204800+0 records in
204800+0 records out
209715200 bytes transferred in 2.200510 seconds (95302996 bytes/sec)
$ du -m /tmp/testdatei
201     bla.txt
$ rm /tmp/testdatei



Daraus ist nun ersichtlich, dass in diesem Fall die Übertragungsrate rund 90 MB/sec beträgt. Weiters bestätigt der Aufruf von du, dass die Datei 201 MB groß ist. Die Datenrate entspricht nun etwa dem 4-fachen Durchsatz.

[*] Es steht nie der gesamte Arbeitsspeicher (512MB) zur Verfügung, da aufgrund des Kernels, aber auch anderer Hardware wie OnBoard-Grafikkarten, ein Teil des RAMs belegt werden.

Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren?

Editieren Versionen Linkpartnerschaft Top Printversion

Haben Sie einen Fehler gefunden? Dann klicken Sie doch auf Editieren, und beheben den Fehler, keine Angst, Sie können nichts zerstören, der Artikel kann wiederhergestellt werden.

Sprachenübersicht/Betriebssysteme/Linux/Dateisysteme/tmpfs