Connect with us

Wie man

So erstellen Sie eine Auslagerungsdatei unter Linux

So erstellen Sie eine Auslagerungsdatei unter Linux

zentilia / Shutterstock.com

Fügen Sie einem Linux-Computer Swap-Speicherplatz hinzu, oder erhöhen Sie den bereits vorhandenen Swap-Speicherplatz, ohne mit Partitionen herumzuspielen. Wir zeigen Ihnen, wie Sie Ihren Swap Space auf einfache Weise anpassen können.

Dateien austauschen vs. Partitionen austauschen

Es gibt verschiedene Szenarien, in denen Sie möglicherweise vorhandenen oder neuen Swap-Speicherplatz für Ihren Linux-Computer erweitern möchten.

  • Möglicherweise läuft Ihr Swap Space häufig maximal oder nahezu maximal.
  • Es ist einfach, während des Installationsvorgangs auf die falsche Option zu klicken und das versehentliche Hinzufügen von Swap zu Ihrem System abzulehnen.
  • Vielleicht haben Sie vorher entschieden, dass Sie so viel hatten Arbeitsspeicher (RAM) Sie brauchten keinen Tausch und haben Ihre Meinung geändert.
  • Manchmal erben Sie die Verwaltung eines Systems ohne Swap, aus Gründen, die Sie nie entdecken können.

Die einfache Lösung für all dies besteht darin, a hinzuzufügen Tauschen Sie die Datei auf Ihren Computer aus. Dies ist eine spezielle Datei, die vorab zugewiesen und für die Verwendung als Auslagerungsbereich reserviert ist. Eine Auslagerungsdatei funktioniert zusammen mit allen vorhandenen Auslagerungsdateien, unabhängig davon, ob es sich um eine Auslagerungsdatei oder eine Auslagerungspartition handelt.

Zu einer Zeit gab es einen Leistungseinbruch bei der Verwendung einer Auslagerungsdatei im Vergleich zu einer Auslagerungspartition. Dies ist nicht mehr der Fall bei Verbesserungen der Leistung mechanischer (sich drehender) Festplatten und einer höheren Effizienz der Auslagerungsfunktionen innerhalb des Linux-Betriebssystems. Tatsächlich erstellen einige Linux-Distributionen jetzt standardmäßig Auslagerungsdateien anstelle von Auslagerungspartitionen.

Swap wird nicht nur verwendet, um RAM freizugeben, wenn der Arbeitsspeicher knapp wird. Es ist ein wichtiger Teil eines gut funktionierenden Systems. Ohne einen Austausch ist es für den Kernel sehr schwierig, eine vernünftige Speicherverwaltung zu erreichen. Schauen wir uns die einfache Möglichkeit an, Swap-Speicherplatz hinzuzufügen.

Bevor wir eintauchen: Btrfs und SSDs

Es gibt zwei Punkte, die wir schnell diskutieren möchten.

Das Btrfs-Dateisystem hat bestimmte Einschränkungen bezüglich Swap-Dateien. Zu einer Zeit gab es einen Konflikt zwischen dem Copy-on-Write Natur von Btrfs, die auf eine Weise arbeiten und Dateien austauschen wollten, die auf eine andere Weise arbeiten mussten. Einige Funktionen, von denen Swap-Dateien abhängen, wurden nicht implementiert, und einige Annahmen, die bezüglich der Blocknummerierung in den Swap-Dateien getroffen wurden, galten bei Btrfs nicht. Auslagerungsdateien wurden daher nicht unterstützt.

Seit Kernel 5.0 haben Sie kann Swap-Dateien in Btrfs-Dateisystemen haben wenn sie mit folgenden Anforderungen eingerichtet sind:

  • Keine NOCOW-Dateien (Copy-on-Write).
  • Sie sind nicht komprimiert.
  • Sie überspannen nicht verschiedene Festplatten.

Die meisten Leser verwenden das Standard-ext4-Dateisystem, daher ist dies für sie kein Problem.

Als Solid-State-Laufwerke (SSDs) zum ersten Mal verfügbar waren, gab es Bedenken, sie in Situationen zu verwenden, in denen häufig Dateisystemschreibvorgänge durchgeführt wurden. Die Leute wurden davor gewarnt, Swap-Speicher auf SSDs zu platzieren und sogar die Systemprotokollierung auf SSDs zu vermeiden.

Dies ist heutzutage viel weniger ein Problem, und viele SSDs, die zum Verkauf angeboten werden, haben eine Lebenserwartung, die die meisten PCs überdauern wird. Eine Auslagerungsdatei auf einer SSD hat eine weitaus bessere Leistung als eine Auslagerungspartition auf einer mechanischen Festplatte.

Überprüfen des vorhandenen Swap Space

Schauen Sie vor dem Sprung. Lassen Sie uns überprüfen, welcher Swap-Speicherplatz auf Ihrem Computer verfügbar ist. Sie können dies auf zwei Arten tun, und wir werden beide verwenden. Das free Befehl zeigt den verwendeten und freien Speicher an. Das -h (vom Menschen lesbare) Option wird verursachen free sinnvolle Einheiten zu verwenden, wenn die Speicherwerte angezeigt werden.

free -h

fre -h in einem Terminalfenster

Die Ausgabe von free zeigt an, dass auf diesem Computer kein Swap Space konfiguriert ist.

Swap wird nie ohne RAM und freies RAM diskutiert. Es ist also erwähnenswert, dass der freie RAM 237 MB beträgt. Verwechseln Sie dies nicht mit dem gesamten verfügbaren RAM. Dieser Wert ergibt sich aus der verfügbaren Zahl (881 MB).

Linux verwendet freien Arbeitsspeicher für eigene Zwecke, z. B. zum Zwischenspeichern von Dateien und für Kernel-Puffer. Die dafür vorgesehene RAM-Größe entspricht der Zahl „Buff / Cache“ (871 MB). Aber diese Erinnerung wird immer noch als „verfügbar“ angesehen und gezählt. Der Inhalt des RAM „buf / cache“ kann sofort verworfen und von jeder Anwendung verwendet werden, die etwas Speicher benötigt.

Eine andere Möglichkeit, um zu überprüfen, ob Swap-Speicher verfügbar ist, ist die Verwendung von swapon Befehl. Das --show Option macht keine Änderungen am Swap auf Ihrem Computer. Es werden nur Statistiken bereitgestellt.

swapon --show

swapon --show in einem Terminalfenster

Wenn von diesem Befehl keine Ausgabe ausgegeben wird, ist kein Swap konfiguriert.

Wenn diese Befehle ergeben haben, dass bereits ein gewisser Swap-Bereich konfiguriert ist, sollte die Größe des vorhandenen Swap-Bereichs bei Entscheidungen über die Größe der zu erstellenden Swap-Datei berücksichtigt werden.

Wie viel Swap Space brauche ich?

Die traditionelle Antwort lautete „doppelt so viel RAM wie Sie“. Dies wurde jedoch geprägt, als Computer nur über sehr begrenzten Arbeitsspeicher verfügten. Da RAM billiger geworden ist und Programme und Spiele mehr Speicher benötigen, wurden die PC-Spezifikationen entsprechend angepasst. Heim-PCs mit 32 GB RAM sind heutzutage keine Seltenheit. Und Sie werden nicht 64 GB Festplattenspeicher für den Austausch von Speicherplatz zuweisen, wenn Sie 32 GB RAM haben. Das ist eindeutig übertrieben.

Die Menge an Swap, die Sie benötigen, ist als Brandthema vergleichbar mit „welches der beste Editor ist“. Eine der vernünftigsten Diskussionen, die wir zu diesem Thema gesehen haben, ist in der Ubuntu Swap FAQ. Es ist ein kurzer und vernünftiger Ansatz (obwohl sie, wie viele Leute, falsch verstehen, wie Swappiness unter Linux funktioniert). Es gibt eine praktische Tabelle, in der die empfohlene Menge an Swap-Speicherplatz für die RAM-Größe Ihres Systems und für den Ruhezustand Ihres Computers angegeben ist.

Und die gute Nachricht ist, dass es nicht wirklich wichtig ist, welchen Wert Sie wählen. Wir können eine Auslagerungsdatei jederzeit entfernen und durch eine größere oder eine kleinere ersetzen. Oder Sie können einfach eine weitere Auslagerungsdatei hinzufügen.

Wählen Sie eine Auslagerungsdateigröße aus der Tabelleund führen Sie es für eine Weile aus. Überwachen Sie die Nutzung des Swap Space durch Ihr System. Wenn eine Feinabstimmung erforderlich ist, können Änderungen leicht vorgenommen werden. Mit Swap-Dateien ist es ein zweiminütiger Job. Vergleichen Sie dies mit dem Anpassen von Partitionen auf einem Live-Linux-Computer.

Auslagendatei erstellen

Sie sollten das nicht verwenden fallocate Befehl um deine Swap-Datei zu erstellen. Dies ist von der Manpage für swapon::

The swap file implementation in the kernel expects to be able to write to
the file directly, without the assistance of the file system. 

This is a problem on files with holes or on copy-on-write files on file 
systems like Btrfs. Commands like cp(1) or truncate(1) create files with 
holes. These files will be rejected by swapon. 

Preallocated files created by fallocate(1) may be interpreted as files 
with holes too depending of the filesystem. Preallocated swap files are 
supported on XFS since Linux 4.18. 

The most portable solution to create a swap file is to use dd(1) and 
/dev/zero.

Auch wenn fallocate ist schneller, wir werden verwenden dd zu Erstellen Sie die Auslagerungsdatei. Die Maschine, mit der dieser Artikel recherchiert wurde, verfügt über zwei GB RAM. Wir werden eine 1-GB-Auslagerungsdatei erstellen.

Die Optionen sind:

  • wenn: Die Eingabedatei. In diesem Beispiel verwenden wir /dev/zero Dies liefert einen Strom von null Bytes.
  • von: Die Ausgabedatei. Wir werden eine Datei im Stammverzeichnis erstellen, die heißt swapfile.
  • bs: Die Blockgröße in Bytes. Dies gibt an, wie viele Bytes gleichzeitig aus der Eingabedatei gelesen und in die Ausgabedatei geschrieben werden sollen.
  • Anzahl: Wie viele Blöcke zum Lesen und Schreiben. Multiplizieren Sie diese Zahl mit dem bs Wert, um die Dateigröße zu erhalten.
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

sudo dd if = / dev / zero von = / swapfile bs = 1024 count = 1048576 in einem Terminalfenster

Einige Statistiken werden beim Erstellen der Datei bereitgestellt.

Ausgabe von sudo dd if = / dev / zero von = / swapfile bs = 1024 count = 1048576 in einem Terminalfenster

Wir können die Anzahl der Blöcke (Datensätze) sehen, die in die Datei geschrieben wurden, die Größe der Datei, die zum Erstellen der Datei benötigte Zeit und die effektive Datenübertragungsrate.

Verwenden Sie die ls Befehl zum Anzeigen der Datei im Stammverzeichnis:

ls /

ls / in einem Terminalfenster

Vorbereiten der Auslagerungsdatei

Wir müssen Bereiten Sie die Auslagerungsdatei vor mit dem mkswap Befehl, bevor es verwendet werden kann. Wir müssen keine Parameter angeben mkswap außer dem Pfad und Namen der Datei:

sudo mkswap /swapfile

sudo mkswap / swapfile in einem Terminalfenster

Die Datei ist für die Verwendung als Auslagerungsdatei vorbereitet. Beachten Sie die Warnung zu Dateiberechtigungen. Wir müssen diese ändern, damit der Root-Benutzer der einzige ist, der die Auslagerungsdatei lesen und schreiben kann.

Verwenden der Auslagerungsdatei

Die Standardberechtigungen sind zu liberal. Wir müssen sie einschränken, damit nur root die Auslagerungsdatei verwenden kann. Verwenden chmod So ändern Sie die Dateiberechtigungen:

sudo chmod 600 /swapfile

sudo chmod 600 / swapfile in einem Terminalfenster

Dadurch werden alle Berechtigungen von den Dateigruppenmitgliedern und anderen entfernt, der Dateieigentümer root kann jedoch lesen und in die Datei schreiben.

Wir müssen das benutzen swapon Befehl, um Linux wissen zu lassen, dass eine neue Auslagerungsdatei zur Verfügung steht. Wir müssen nur den Pfad und den Dateinamen angeben:

sudo swapon /swapfile

sudo swapon / swapfile in einem Terminalfenster

Die Auslagerungsdatei ist jetzt aktiv.

Hinzufügen der Auslagerungsdatei zu fstab

Um sicherzustellen, dass Ihre Auslagerungsdatei nach einem Neustart verfügbar ist, fügen Sie sie dem hinzu /etc/fstab Datei. Sie können einen beliebigen Texteditor verwenden, wir zeigen den Vorgang jedoch mit dem grafischen Gedit-Texteditor.

sudo gedit /etc/fstab

sudo gedt / etc / fstab in einem Terminalfenster

Die Zeile, die wir am Ende der Datei hinzufügen müssen, lautet:

/swapfile    none    swap    sw    0    0

/ etc / fstab mit hervorgehobenem Swapfile-Eintrag

Die Felder sind:

  • Dateisystem: Der Pfad und Name der Auslagerungsdatei.
  • Einhängepunkt: Die Datei wird nicht wie ein Dateisystem gemountet, daher lautet der Eintrag „none“.
  • Art: Dies ist „Tausch“.
  • Optionen: Beim Booten swapon -a (Alle als Swap gekennzeichneten Geräte starten) wird von einem der Boot-Skripte aufgerufen. Diese Option weist Linux an, diesen Eintrag als Swap-Ressource zu behandeln, die unter die Kontrolle davon kommen sollte swapon -a Befehl. Es ist üblich, dass hier „Standardeinstellungen“ verwendet werden, da einige Linux-Benutzer fälschlicherweise glauben, dass dieses Feld ignoriert wird. Wie wir sehen werden, ist dies nicht der Fall. Es ist also sinnvoll, die richtige Option zu verwenden.
  • Dump: Dies kann auf Null gesetzt werden. Dies ist in diesem Fall irrelevant.
  • Bestehen: Dies kann auf Null gesetzt werden. Dies ist in diesem Fall irrelevant.

Speichern Sie die Änderungen und schließen Sie den Editor.

Überprüfen der Swap-Verwendung

Verwenden Sie die Taste, um festzustellen, ob Ihr Swap Space verwendet wird swapon Befehl mit dem --show Möglichkeit:

swapon --show

swapon --show in einem Terminalfenster

Die Spalten sind:

  • Name: Der Name der Auslagerungspartition oder Auslagerungsdatei.
  • Art: Der Typ des Swap-Geräts.
  • Größe: Die Größe der Swap-Ressource.
  • Benutzt: Die Menge des verwendeten Swap Space.
  • Prio: Die Priorität dieses Swap Space.

Die Swap Space-Priorität

Jedem Swap Space wird eine Priorität zugewiesen. Wenn Sie keine angeben, wird automatisch eine zugewiesen. Automatisch zugewiesene Prioritäten sind immer negativ. Der Bereich von Prioritäten, der manuell zugewiesen werden kann, liegt zwischen 0 und 32767. Zuerst werden Ressourcen mit höheren Prioritäten ausgetauscht.

Wenn mehr als ein Swap Space dieselbe Priorität hat, werden sie abwechselnd verwendet, bis beide voll sind, dann sucht das System nach dem Swap Space mit der nächstniedrigeren Priorität. Wenn Sie nur einen einzigen Swap Space haben, ist die Priorität natürlich irrelevant. Wir werden jedoch die Priorität der von uns erstellten Auslagerungsdatei ändern, um zu demonstrieren, wie dies funktioniert.

Um eine Priorität festzulegen, fügen Sie die hinzu pri= (Prioritäts-) Option zur /etc/fstab Eintrag. Bearbeiten Sie die Zeile, die Sie hinzugefügt haben /etc/fstab so aussehen:

/swapfile    none    swap    sw,pri=10    0    0

Das heißt, hinzufügen pri=10 in das Optionsfeld, durch Komma vom „sw“ getrennt. Lassen Sie keine Leerzeichen zwischen dem „sw“, dem Komma und dem „pri = 10“. Starten Sie Ihren Computer neu und verwenden Sie die swapon --show Befehl:

swapon -- show

swapon - in einem Terminalfenster anzeigen

Die Priorität dieses Swap Space wurde auf 10 erhöht. Dies ist ein Beweis dafür, dass das Optionsfeld in der /etc/fstab Eintrag wird nicht ignoriert.

Swap Space leicht gemacht

Wenn wir die Darstellung und Erklärung durchgehen, können wir so einfach und schnell eine neue Auslagerungsdatei erstellen:

sudo dd if=/dev/zero /of=/swapfile2 bs=1024 count=104857
sudo mkswap /swapfile2
sudo chmod 600 /swapfile2
sudo swapon /swapfile2

Und lassen Sie uns überprüfen, ob es funktioniert hat:

swapon --show

sudo dd if = / dev / zero / of = / swapfile2 bs = 1024 count = 104857 in einem Terminalfenster

Wenn du diesen dauerhaften Tropfen machen willst, dann in deinen /etc/fstab Datei.

Boom. Job erledigt.

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia