Articlename: tmpfs Keywords: tmpfs /tmp temp file system Date: 22.04.2006, 22:59 Views: 3238 Categoryname: Dateisysteme ---------------------------------------- Erklärung ------------------ 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 ------------------ 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) ------- End-Code ------- Um beispielsweise das /tmp-Verzeichnis mit tmpfs zu verwenden, ist folgender Eintrag in der /etc/fstab notwendig: ------- Code: /etc/fstab ------- none /tmp tmpfs defaults 0 0 ------- End-Code ------- 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 ------- End-Code ------- 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 ------- End-Code ------- 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 ------- End-Code ------- 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.