Haben Sie schon einmal von tmpfs unter Linux gehört?? Es ist dieses kleine temporäre Dateisystem, das sich im Speicher befindet und standardmäßig auf Linux-Distributionen installiert ist. Ultraschnell, aber regelmäßig begrenzt in der Größe. Kannst du leicht wachsen? Mehr wissen!
Was ist es tmpfs?
Alles in einem Computer hat eine bestimmte native Betriebsgeschwindigkeit. Es beginnt mit der CPU (die Zentraleinheit) Auf deinem Computer, die einen Satz von L1-Lx-Caches hat (Niveau 1 auf Stufe x), sie sind sehr klein (als Beispiel, 16 KB) aber ultraschnell (und wahrscheinlich ultraschnell). -teuer).
Nach dem CPU-Caches, sind die Hauptspeicherbänke, die sind noch viel schneller (und Byte für Byte teurer) dass die Festplatte, etc. Wie du siehst, es geht um Kosten versus Größe versus Geschwindigkeit. Als Faustregel gilt, dass die Kosten mit zunehmender Geschwindigkeit steigen und die Größe sinkt, um die Kosten zu begrenzen, etc.
Wenn Sie alle Ihre Daten in den Hauptspeicherchips Ihres Computers gespeichert haben, was technisch sehr machbar und ganz einfach zu bewerkstelligen ist, seine Arbeit im wahrsten Sinne des Wortes fliegen im Vergleich zur Verwendung einer einzelnen Disc, da Speicherchips viel schneller sind als die meisten Festplatten.
Trotz dieses, es gibt einige technische Einschränkungen dabei. Sobald Sie Ihren Computer ausschalten, Ihre Dateien werden verschwinden. Ein nicht behebbarer Anwendungsfehler kann ausreichen, um Ihren Computer neu zu starten und Ihre Dateien zu verlieren. Zur selben Zeit, du könntest deinen Computer nie wieder ausschalten, es sei denn, es hatte einige erweiterte Funktionen (das gibt es meines Wissens nicht) um Ihre Dateien auf Speicherchips zu halten, entspricht einem BBU-kompatiblen Cache (Batterie-Backup-Einheit) in einem Raid-Controller.
Trotz dieses, Beachten Sie, dass es eine äquivalente Funktion gibt (aber nicht identisch) zu diesem, das Sie möglicherweise bereits verwenden: wenn Sie Ihr System an RAM anhalten (mit schlafen oder andere gleichwertige Terminologie, die von Betriebssystemen verwendet wird), Ihre Speicherchips werden kontinuierlich mit Strom versorgt, um Ihre Daten aktuell zu halten.
Anschließend, wenn Sie Ihr System neu starten, du kannst da weitermachen wo du aufgehört hast. Aber das Herunterfahren unter Beibehaltung des Speicherinhalts wird bei Computern im Allgemeinen nicht verwendet. Möglicherweise, könnte von Smart-Tablets verwendet werden, obwohl argumentiert werden könnte, dass solche Zustände keine wahrheitsgetreuen Zustände sind, aber eher Low-Power-States.
Nachdem geklärt ist, wie, allgemein gesagt, Das Speichern Ihrer Dateien auf Speicherchips ist wahrscheinlich keine solide Idee, Es gibt andere Verwendungen, bei denen es hilfreich sein könnte. Als Beispiel, beim Testen / Qualitätskontrolle des Programms, Es ist wahrscheinlich, dass das zu testende Programm normalerweise gestartet und geschlossen wird.
Diese Dateien sind temporär und von geringem individuellem Wert. (es sei denn, es wird ein Fehler gefunden, dann können die Daten wieder auf die Hauptdisk kopiert werden) und, als solche, könnte auf Ihren Speicherchips gespeichert werden. Das ist was tmpfs
ist und tut: Es ist ein temporäres Dateisystem in Ihrem Speicher. Einige von euch könnten sofort Einspruch erheben und sagen: “Das stimmt nicht”, und sie hätten recht. Weiterlesen.
Diejenigen, die Einwände erhoben haben, hätten sofort geltend machen können, dass die tmpfs Platz ist nicht garantiert im Speicher, und das ist wahr. Du kannst sehen tmpfs
wie ein Hybrid zwischen einer echten RAM-Disk (eine im flüchtigen Speicher erstellte Festplatte) und echter permanenter Festplattenspeicher. In bestimmten Fällen, Der Linux-Kernel tauscht den Inhalt von tmpfs im System-Swap-Bereich aus, das könnte auf der Platte sein. Dies geschieht transparent (ohne Benutzerinteraktion).
Weitere Informationen zum Konfigurieren einer RAM-Disk, Siehe unsere Anleitung So erstellen Sie ein RAM-Laufwerk unter Linux.
Dein aktueller tmpfs Größe
Jetzt haben wir tmpfs
besser definierter Raum, Werfen wir einen Blick auf die aktuelle Größe Ihres tmpfs
Platz. Könntest du an ihn denken tmpfs
System als virtuelles Laufwerk, temporär und volatil. Sie können den belegten Platz mit . sehen df -h
(Speicherplatznutzung des Dateisystems (df
) in menschenlesbarem Format, Danke an die -h
Möglichkeit):
df -h | grep -Ei 'shm|Größe'
Hier verwenden wir df -h
(oben erklärt) kombiniert mit einer Pfeife (|
) um die Ausgabe zu senden, die sich aus dem . ergibt df -h
noch grep
, mit einem erweiterten (-E
) Formatieren Sie reguläre Ausdrücke ohne Beachtung der Groß-/Kleinschreibung (-i
oder einfach ich in Kombination mit einer anderen Alternative) um den Top-Titel zu wählen (das beinhaltet das Wort Size
) und jede Zeile, die den Text enthält shm
.
Der Grund, warum grep shm
ist das fast immer, wie wir auch in der Ausgabe hier sehen können, tmpfs-Speicherplatz wird dem Dateisystemverzeichnis zugewiesen /dev/shm
. Wenn der obige Befehl keine Ausgabe erzeugt, Renn einfach df -h
und überprüfen Sie die Gesamtergebnisse für die Suche tmpfs
Platz, ja da ist.
Beachten Sie, dass, standardmäßig, das Betriebssystem wird auch zuordnen / wird einige tmpfs-Leerzeichen setzen, das könnte, als Beispiel, Karte / Reiten die /sys/fs/cgroup
, /run
und /run/lock
Verzeichnisse. Versuchen Sie nicht, sie zu bearbeiten.
In Gedenken an /dev/shm
und andere Verzeichnisse, Beachten Sie, dass diese Ordner in der Verzeichnisstruktur des Betriebssystems angezeigt werden [Baum] bedeutet nicht, dass die Dateien wirklich sind / in einigen physisch auf der Festplatte gespeichert /dev/shm
Verzeichnis!
Es bedeutet einfach, dass, entsprechend und im Einklang mit der Standard-Linux-Methode, Laufwerke mounten zu können (o für diesen Fall, tmpfs) in einem beliebigen Verzeichnis in der Dateisystemhierarchie, wenn sich vor dem Mounten Dateien in diesem Verzeichnis befanden , sie wären einfach nicht sichtbar, bis der Mount-Punkt gelöscht wurde.
In diesem speziellen System, das tmpfs
der raum ist von 32 GB und fast alles wird nicht genutzt. Was wenig ist in Gebrauch (166 MB) ist die Zieltabelle / Index des Verzeichnisses selbst, die für Benutzer unsichtbar ist, aber es ist vorhanden, um Dateien in der Dateisystemstruktur speichern zu können. Die grosse von tmpfs
es ist, standardmäßig, die Hälfte des Systemspeichers für bestimmte Betriebssysteme.
Das ist ziemlich groß tmpfs
und es wäre nur technisch gerechtfertigt, bis zu einem bestimmten punkt, in einem System mit, als Beispiel, 40 GB oder mehr physischer Speicher, obwohl, kommt auf die Umstände an, ein bestimmter Anwendungsfall kann andere Konfigurationen rechtfertigen. In der Regel, Ich empfehle, die zu behalten tmpfs
Platz weniger als, Sagen wir, das 70-80% der Erinnerung, und dieser Prozentsatz wäre deutlich niedriger, wenn der RAM (Arbeitsspeicher, eine andere abgekürzte Art oder Weise, auf den Systemspeicher zu verweisen) Ich war klein um anzufangen.
Der Grund dafür ist, dass Sie genügend Speicherplatz zur Verfügung stellen möchten, um andere Programme auszuführen, Betriebssysteme und Softwaredienste.
Als Beispiel, die würde ich nicht vergeben wollen 80% Arbeitsspeicher, wenn Ihr System 2 GB Arbeitsspeicher hat, da dies wahrscheinlich nur sehr wenig übrig lässt, damit andere Dinge richtig oder überhaupt funktionieren. Und, Umgekehrt, hat viel von 256 GB Speicher, einschließlich der 90% davon (230,4 GB) Ich würde ein paar gute hinterlassen 25 GB verfügbar, das, je nach Anwendungsfall, könnten (oder nicht) reichen.
Zusammenfassend, Ich empfehle, dass Sie immer die Größe von anpassen tmpfs
entsprechend 1) wie viel platz braucht man wirklich in tmpfs, 2) wie viel Speicher auf Ihrem System ist und 3) wie viel realen Speicher andere Apps gleichzeitig von tmpfs verwenden (einschließlich Ihrer Operationen, Dienstleistungen, usw.). Erfahrung mit all diesen Dingen hilft hier.
Verlängerung tmpfs in Ihrem System
Jetzt, da wir die Größe des Streams kennen tmpfs
Volumen und wie groß es in Zukunft sein soll, indem Sie einige der Überlegungen im letzten Absatz oben berücksichtigen, Wir können einen Blick zum Vergrößern werfen (oder reduzieren) unsere tmpfs
Platz.
Das geht ganz einfach. Alles was wir tun werden ist, Anstatt dass das Betriebssystem automatisch die /dev/shm
tmpfs platz für uns, statisch im /etc/fstab
Datei, die die Laufwerkszuordnungen beim Start steuert. Wir fügen einfach hinzu:
# <Dateisystem> <Einhängepunkt> <Typ> <Optionen Optionen> <Müllkippe> <bestehen> tmpfs /dev/shm tmpfs Standardwerte,rw,nodev,kein Fehler,noatime,nosuid,Größe = 2G 0 0
al /etc/fstab
Verfahren. Kopieren Sie nicht den ersten Kommentar (#
Präfix), da es schon da sein wird. Zur selben Zeit, ändere das 2G
(2GB) nach Ihrem kalkulierten Bedarf / geschätzt für tmpfs Größe. Es ist möglicherweise nicht sinnvoll, dies in der Nähe oder über der Größe des verfügbaren Speichers zu bestimmen, wie wir bereits erklärt haben.
Die Kopfzeilenmarkierungen im Feld /etc/fstab
Datei die Bedeutung von Feldern erklären, und weitere Informationen finden Sie in der fstab
Bedrucken beider Seiten des Papiers für einen einzelnen Druckauftrag, die durch Eingabe von man fstab
. Einfach, wir bitten das Betriebssystem a . zu mounten tmpfs
Dateisystem (Systemstandort ist im Speicher, also anstatt ein Gerät anzugeben, wir zeigen an tmpfs
.) und der typ tmpfs
, montiert auf /dev/shm
.
Wir etablieren auch eine Reihe von Alternativen. Du wirst wahrscheinlich das verlassen wollen defaults,rw,nodev,nofail
minimal (Standardwerte verwenden, Lesezugriff / Schreiben, kein physisches Gerät vorhanden und das Starten des Betriebssystems nicht stoppen, wenn dieses Mounten in irgendeiner Weise fehlschlägt).
Sie können auch die Optimierungsalternativen belassen noatime,nosuid
Wenn Sie wünschen (das ist ideal zum testen / Qualitätskontrolleinstellungen, da es schneller geht, während weniger Informationen über die Dateien im tmpfs-Bereich gespeichert werden), oder du kannst sie löschen (und die dazugehörigen Kommas). Zur selben Zeit, verlassen (und ändern / Größe angeben) das size=xG
Parameter. Zusammenfassend, wir haben einen standard 0 0
von dump and pass
(Schiedsrichter man fstab
für weitere Informationen zu diesen beiden Optionen).
Sobald die Änderung vorgenommen wurde, Starten Sie einfach Ihr System neu und führen Sie es aus df -h
um zu überprüfen, dass Sie /dev/shm
Der tmpfs-Raum hat jetzt die neue Größe, die Sie konfiguriert haben. Wenn etwas schief gelaufen ist, schau einfach nach dmesg
(an der Eingabeaufforderung eingegeben) und nach roten Fehlermeldungen suchen (du wirst wahrscheinlich scrollen müssen) um herauszufinden was schief gelaufen ist. Auch wenn etwas schief gelaufen ist, das System hätte sowieso gut starten sollen, solange du die nicht gelöscht hast nofail
Möglichkeit.
Für Ubuntu-Benutzer, existiert, trotz dieses, ein machbares Fehler kein Fehler Passt auf. Früher gab es eine Alternative nobootwait Möglichkeit [stattdessen], obwohl nicht klar ist, ob es noch verwendet werden kann und, In diesem Fall, in welchen Versionen von Ubuntu und seinen Derivaten [nur]. Als letzte Alternative zum Test, solange SystemD verwendet wird, du könntest in Erwägung ziehen, es zu verwenden x-systemd.device-timeout = 10 Wartezeit, wo 10 ist die Anzahl der Sekunden, die man bereit ist, während des Starts zu warten.
Ende
In diesem Beitrag, wir analysieren eingehend tmpfs
Dimensionierung, unter Berücksichtigung des Anwendungsfalls und anderer Faktoren.
Wir erklären auch tmpfs
im Detail, herausgefunden, wie man die aktuelle Größe der Maschine findet tmpfs
Dateisystem, und kurz gesagt, wie man die Größe von tmpfs ändert.
Viel Spaß mit tmpfs!