Dies ist ein Gastbeitrag von SathiyaMoorthy.
Mit ramfs oder tmpfs können Sie einen Teil des physischen Speichers als Partition zuweisen. Sie können diese Partition mounten und mit dem Schreiben und Lesen von Dateien wie bei einer Festplattenpartition beginnen. Da Sie im RAM lesen und schreiben, ist es schneller.
Wenn ein lebenswichtiger Prozess aufgrund von Festplattenschreibvorgängen drastisch langsam wird, können Sie entweder ramfs- oder tmpfs-Dateisysteme zum Schreiben von Dateien in den RAM wählen.
Sowohl tmpfs als auch ramfs mount geben Ihnen die Möglichkeit, Dateien schnell aus dem und in den Primärspeicher zu lesen und zu schreiben. Wenn Sie dies an einer kleinen Datei testen, sehen Sie möglicherweise keinen großen Unterschied. Sie werden den Unterschied nur bemerken, wenn Sie große Datenmengen mit einem anderen Verarbeitungsaufwand wie Netzwerk in eine Datei schreiben.
1. Wie man Tmpfs einbindet
# mkdir -p /mnt/tmp # mount -t tmpfs -o size=20m tmpfs /mnt/tmp
Die letzte Zeile im folgenden df -k zeigt das oben gemountete /mnt/tmp tmpfs Dateisystem.
# df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 32705400 5002488 26041576 17% / /dev/sda1 194442 18567 165836 11% /boot tmpfs 517320 0 517320 0% /dev/shm tmpfs 20480 0 20480 0% /mnt/tmp
2. Wie man Ramfs montiert
# mkdir -p /mnt/ram # mount -t ramfs -o size=20m ramfs /mnt/ram
Die letzte Zeile im folgenden mount-Befehl zeigt das oben gemountete /mnt/ram ramfs-Dateisystem.
# mount /dev/sda2 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) fusectl on /sys/fs/fuse/connections type fusectl (rw) tmpfs on /mnt/tmp type tmpfs (rw,size=20m) ramfs on /mnt/ram type ramfs (rw,size=20m)
Sie können ramfs und tmpfs während des Bootens mounten, indem Sie einen Eintrag in /etc/fstab.
hinzufügen3. Ramfs gegen Tmpfs
Hauptsächlich machen sowohl ramfs als auch tmpfs das Gleiche mit einigen kleinen Unterschieden.
- Ramfs wird dynamisch wachsen . Sie müssen also den Prozess steuern, der die Daten schreibt, um sicherzustellen, dass ramfs die verfügbare RAM-Größe im System nicht überschreitet. Nehmen wir an, Sie haben 2 GB RAM auf Ihrem System und haben ein 1-GB-RAMFs erstellt und als /tmp/ram gemountet. Wenn die Gesamtgröße von /tmp/ram 1 GB überschreitet, können Sie immer noch Daten darauf schreiben. Das System hindert Sie nicht daran, Daten mit mehr als 1 GB zu schreiben. Wenn die RAM-Gesamtgröße von 2 GB jedoch überschritten wird, hängt sich das System möglicherweise auf, da im RAM kein Platz zum Speichern der Daten vorhanden ist.
- Tmpfs wächst nicht dynamisch . Es würde Ihnen nicht erlauben, mehr als die Größe zu schreiben, die Sie beim Mounten der tmpfs angegeben haben. Sie müssen sich also keine Gedanken über die Steuerung des Prozesses machen, der die Daten schreibt, um sicherzustellen, dass tmpfs das angegebene Limit nicht überschreitet. Es kann zu Fehlern wie „Kein freier Speicherplatz auf dem Gerät“ kommen.
- Tmpfs verwendet Swap .
- Ramfs verwendet keinen Swap.
4. Nachteile von Ramfs und Tmpfs
Da sowohl ramfs als auch tmpfs in den System-RAM schreiben, würden sie gelöscht, sobald das System neu gestartet oder abgestürzt wird. Sie sollten also einen Prozess schreiben, um die Daten von ramfs/tmpfs in regelmäßigen Abständen auf die Festplatte zu laden. Sie können auch einen Prozess schreiben, um die Daten von ramfs/tmpfs auf die Festplatte zu schreiben, während das System heruntergefahren wird. Aber das wird Ihnen bei einem Systemabsturz nicht helfen.
Experiment | Tmpfs | Ramfs |
---|---|---|
Füllen Sie den maximalen Platz aus und schreiben Sie weiter | Wird Fehler anzeigen | Werde weiter schreiben |
Feste Größe | Ja | Nein |
Verwendet Swap | Ja | Nein |
Flüchtiger Speicher | Ja | Ja |
Wenn Sie möchten, dass Ihr Prozess schneller schreibt, ist die Entscheidung für tmpfs eine bessere Wahl mit Vorsichtsmaßnahmen für den Systemabsturz.
Dieser Artikel wurde von SathiyaMoorthy geschrieben. Er arbeitet bei bksystems, schreibt gerne Artikel und trägt in seiner Freizeit zu Open Source bei. The Geek Stuff freut sich über Ihre Tipps und Gastartikel.