Virtueller Speicher ist eines der Dinge, die modernen Betriebssystemen zugrunde liegen, aber normalerweise denkt man nicht wirklich darüber nach, es sei denn, man hat ein Problem. Linux-Distributionen fordern Sie auf, Ihren virtuellen Speicherplatz (Swap-Partitionen) während der Installation einzurichten, aber die meisten Anfänger sind sich nicht bewusst, wie nützlich das ist.

Hier finden Sie alles, was Sie über virtuellen Speicher unter Linux wissen müssen.

Was ist virtueller Speicher?

Virtueller Speicher ist eine Möglichkeit, Ihren Speicher darzustellen, der vom physischen Speicher auf Ihrem Computer abstrahiert ist. Es nutzt sowohl Ihren Arbeitsspeicher als auch Ihren Speicherplatz, egal ob auf einer herkömmlichen Festplatte oder einer SSD.

Unter Linux geschieht dies auf Kernel- und Hardwareebene. Die CPU verfügt über eine Hardware namens Memory Management Unit (MMU), die physische Speicheradressen in virtuelle übersetzt. Diese Adressen sind unabhängig davon, wo sie sich physisch auf der Maschine befinden. Diese Adressräume werden als "Seiten" bezeichnet und können sich im RAM oder auf Ihrer Festplatte oder SSD befinden. Das Betriebssystem betrachtet diese Adressen als einen großen Speicherpool, der als „Adressraum“ bekannt ist.

instagram viewer

Virtueller Speicher nutzt die Tatsache aus, dass nicht der gesamte theoretisch verwendete Speicher ständig verwendet wird. Programme im Speicher werden in Seiten zerlegt und die Teile, die der Kernel für unnötig hält, werden „ausgelagert“ oder auf die Festplatte verschoben. Wenn sie benötigt werden, können sie "ausgelagert" oder zurück in den Arbeitsspeicher gebracht werden.

Der Speicherplatz, der für virtuellen Speicher auf einem Laufwerk verwendet wird, wird als „Sicherungsspeicher“ oder „Auslagerungsspeicher“ bezeichnet. In der Windows-Welt ist es normalerweise als Datei implementiert, die als "Auslagerungsdatei" bekannt ist. Es ist auch unter Linux möglich, aber es ist viel häufiger zu Verwenden Sie eine dedizierte Festplattenpartition.

Auslagerungsdateien unter Linux sind normalerweise für minimale oder eingebettete Systeme reserviert, und es ist üblich, dass letztere vollständig ohne virtuellen Speicher ausgeführt werden, da eingebettete Betriebssysteme klein sein müssen.

Das Ergebnis des virtuellen Speichers ist, dass es möglich ist, große Programme auszuführen, indem mehr Speicher als der physische RAM verwendet wird Ihrer Maschine, ähnlich wie Sie mit einer Kreditkarte große Einkäufe für mehr Geld tätigen können, als Sie auf Ihrer Bank haben Konto. Wie eine Kreditkarte ist virtueller Speicher nützlich, wenn Sie ihn brauchen, ihn aber nicht überstrapazieren möchten.

Virtueller Speicher ermöglicht es Entwicklern auch, Anwendungen zu erstellen, ohne wissen zu müssen, wie der Speicher eines Computers organisiert ist.

Der größte Nachteil in der Vergangenheit beim virtuellen Speicher war, dass Festplatten langsamer waren als RAM. Wenn ein Computer nicht über genügend RAM verfügt, kann das System endlos Seiten ein- und auslagern, ein Vorgang, der als "Thrashing" bekannt ist. Das ist Auf modernen PCs mit mehr RAM und schnelleren SSDs, die mechanische Festplatten ersetzen, ist dies weniger ein Problem, aber es ist immer noch etwas, das man beachten sollte von.

Linux-Swap-Partitionen

Wie bereits erwähnt, besteht die übliche Methode zum Einrichten von virtuellem Speicher unter Linux darin, eine dedizierte Festplattenpartition zu verwenden. Das Installationsdienstprogramm untersucht Ihre Hardware und schlägt ein Partitionierungsschema vor, das eine Swap-Partition enthält.

Sie können auch nach der Installation Swap-Partitionen hinzufügen. Wenn Sie einem vorhandenen Laufwerk eine neue Partition hinzufügen möchten, müssen Sie dies tun Verwenden Sie ein zerstörungsfreies Partitionierungstool wie GParted. Stellen Sie sicher, dass Sie „Linux Swap“ als Dateisystem für Ihre Partition ausgewählt haben.

Sichern Sie wichtige Daten, bevor Sie Ihr Laufwerk neu partitionieren.

Nachdem Sie Ihre Partition erstellt haben, verwenden Sie den Befehl mkswap, um Ihre Partition zu formatieren.

sudo mkswap /dev/sdX

Jetzt müssen Sie Ihre bearbeiten /etc/fstab als root, um Ihre Swap-Partition hinzuzufügen. Diese Zeile, die der Datei hinzugefügt wird, richtet eine Swap-Partition ein, die beim Booten gemountet wird:

/dev/sdX none Swap-Standardwerte 0 0

Verwenden Sie jetzt die tauschen Befehl, um Ihren neuen Auslagerungsbereich zu aktivieren, wobei sdX der Name Ihrer Auslagerungspartition ist:

sudo swapon /dev/sdX

Verwenden von Auslagerungsdateien unter Linux

Es ist einfach zu Richten Sie eine Auslagerungsdatei unter Linux ein über die Kommandozeile. Vielleicht möchten Sie dies tun, wenn Sie sich nicht die Mühe machen möchten, Ihr Laufwerk neu zu partitionieren oder zu bearbeiten /etc/fstab. Eine Methode ist zu verwenden fallen:

So erstellen Sie beispielsweise eine 2-GB-Auslagerungsdatei:

sudo fallocate -l 2G /path/to/swapfile

Alternativ können Sie den dd-Befehl verwenden, um die Auslagerungsdatei zu erstellen.

sudo dd wenn=/dev/Null von=/path/to/swapfile bs=1024 zählen=2048

Stellen Sie sicher, dass Sie den dd-Befehl richtig verwenden, da ein falsches Infile und Outfile zu Datenverlust führen kann. fallocate ist aus diesem Grund die bevorzugte Methode.

Das /dev/zero Gerät ist ein spezielles Gerät, das "0" ausgibt. Dieser dd-Befehl erstellt eine leere 2-Gigabyte-Blockdatei mit 1024-Kilobyte-Blöcken, die als Auslagerungsspeicher geeignet sind.

Sie können dann die verwenden mkswap und tauschen Befehle mit einer Auslagerungsdatei wie bei einer Auslagerungspartition:

sudo mkswap /path/to/swapfile
sudo swapon /path/to/swapfile

Sie fragen sich vielleicht, wann Sie eine Auslagerungsdatei oder eine dedizierte Partition für Ihren Auslagerungsbereich verwenden sollten. Die Wahl ist einfach: In den meisten Fällen sollten Sie eine Partition verwenden. Dies ist die beste Wahl für einen Linux-Desktop oder einen Server. Das vom Installationsprogramm vorgeschlagene Partitionsschema ist normalerweise auf einem Linux-Desktop für Einzelbenutzer angemessen.

Möglicherweise möchten Sie eine Auslagerungsdatei verwenden, wenn Sie Linux in einer virtuellen Maschine oder auf einem kleinen eingebetteten System ausführen oder Ihr vorhandenes Linux-System einfach nicht neu partitionieren möchten.

Wie viel Swap-Space?

Seit vielen Jahren ist der Standardratschlag für den erforderlichen Auslagerungsspeicher das Doppelte des physischen RAM. Bei den großen Laufwerken und dem Arbeitsspeicher, mit denen selbst die billigsten PCs ausgestattet sind, kann diese Regel in Frage gestellt werden.

Wenn Sie auf vielen Systemen top oder htop überprüfen, stellen Sie möglicherweise sogar fest, dass Ihr Auslagerungsspeicher überhaupt nicht verwendet wird, wenn Sie Ihr System auf diese Weise einrichten.

Dennoch ist die Verdoppelung des physischen Speichers ein guter Ausgangspunkt und eine Versicherung, wenn Sie höhere Anforderungen an den Speicher stellen. Sie können bei Bedarf Änderungen an Ihrem System vornehmen. Wenn Ihr System Ihren gesamten Arbeitsspeicher verwendet, kann es beim Computer zu Leistungsproblemen kommen, wenn Sie virtuellen Speicher verwenden.

Der Computer kann ständig ein- und auswechseln, ein Vorgang, der als Thrashing bezeichnet wird, wodurch er nicht mehr zu reagieren scheint. Wenn Sie noch eine mechanische Festplatte haben, können Sie oft hören, wie sie ständig zugreift.

Dies ist heutzutage viel weniger ein Problem, da die RAM-Menge selbst auf den billigsten PCs mehr als ausreichend ist und die Geschwindigkeit von SSDs viel schneller ist als die der alten Festplatten. Es ist immer noch etwas, dessen Sie sich bewusst sein sollten.

Der einfachste Weg, dies zu beheben, besteht darin, Ihrem Computer einfach mehr RAM hinzuzufügen. Wenn das nicht möglich ist, können Sie versuchen, die "Auslagerung" des Linux-Kernels anzupassen.

Die Auslagerungszahl bestimmt, wie stark der Kernel in den virtuellen Speicher eintaucht. Sie reicht von 0 bis 100. Wenn Sie es auf 0 setzen, wird Linux überhaupt nicht wechseln, während es bei 100 bei jeder Gelegenheit wechseln wird. Der Standardwert auf den meisten Systemen ist 60.

Um die Auslagerung vorübergehend zu ändern, verwenden Sie den Befehl sysctl:

sudo sysctl vm.swappiness=20

Die "20" in diesem Befehl ist die Auslagerungszahl, bis Sie neu starten. Um es dauerhaft zu ändern, bearbeiten Sie die /etc/sysctl.conf Datei als root und platzieren Sie die Zeile "vm.swappiness=[swappiness number]", wobei "[swappiness number]" die gewünschte Swappiness-Nummer ist. Dies wird eine Notlösung sein, bis Sie mehr RAM installieren können.

Virtueller Speicher sorgt dafür, dass Ihr Linux-System reibungslos läuft

Virtueller Speicher ist eine Komponente moderner Betriebssysteme, einschließlich Linux, die dafür sorgen, dass Ihr Computer reibungslos läuft. Sie können eine Auslagerungsdatei verwenden, aber die übliche Methode ist eine dedizierte Partition. Sie müssen nicht so viel darüber nachdenken, aber Linux-Swap-Partitionen und Swap-Dateien sind einfach einzurichten und zu beheben.

Viele dieser Ratschläge gelten auch für andere Systeme, einschließlich Windows, auch wenn die Methoden zum Einrichten des virtuellen Speichers unterschiedlich sind.