So erweitern Sie den tmpfs-Speicherplatz in Linux

Inhalt

Bash-Shell

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'

Überprüfen der aktuellen Verwendung von tmpfs mit df -h

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!

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.