Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Detaillierte Erläuterung der Rolle der Swap-Partition unter Linux

Detaillierte Erläuterung der Rolle der Swap-Partition unter Linux

小云云
小云云Original
2018-01-24 13:22:252050Durchsuche

Dieser Artikel stellt hauptsächlich die Rolle der Swap-Partition unter Linux vor und ist der Meinung, dass er einen gewissen Referenzwert hat. Ich hoffe, er kann jedem helfen.

Dieser Artikel untersucht hauptsächlich den zugehörigen Inhalt der Swap-Partition unter Linux. Die spezifische Einführung lautet wie folgt.

Einführung in die Swap-Partition

Eingebettete chinesische Linux-Site-Neuigkeiten, die Swap-Partition des Linux-Systems, also der Swap-Bereich, die Rolle des Swap-Bereichs kann einfach beschrieben werden als: wenn die Wenn der physische Speicher des Systems nicht ausreicht, muss ein Teil des Speicherplatzes im physischen Speicher für die Nutzung durch das aktuell laufende Programm freigegeben werden. Der freigegebene Speicherplatz stammt möglicherweise von einigen Programmen, die längere Zeit nicht ausgeführt wurden. Der freigegebene Speicherplatz wird vorübergehend im Swap-Bereich gespeichert. Wenn diese Programme ausgeführt werden, werden die gespeicherten Daten aus dem Swap-Speicher wiederhergestellt. Auf diese Weise führt das System immer dann einen Swap durch, wenn der physische Speicher nicht ausreicht. Tatsächlich ist die Swap-Anpassung entscheidend für die Leistung von Linux-Servern, insbesondere von Webservern. Durch die Anpassung von Swap können manchmal Engpässe bei der Systemleistung überwunden und Kosten für Systemaktualisierungen eingespart werden.

Wie wir alle wissen, haben moderne Betriebssysteme die Technologie des „virtuellen Speichers“ implementiert, die nicht nur die Einschränkungen des physischen Speichers in Bezug auf die Funktionalität durchbricht, sondern es Programmen auch ermöglicht, größeren Speicherplatz zu manipulieren Der eigentliche physische Speicher ist ein Sicherheitsnetz, das jeden Prozess isoliert, sodass er nicht durch andere Programme beeinträchtigt wird.

Vielleicht stoßen Computerbenutzer häufig auf dieses Phänomen. Wenn Sie beispielsweise ein Windows-System verwenden, können Sie mehrere Programme gleichzeitig ausführen. Wenn Sie zu einem Programm wechseln, das Sie längere Zeit nicht beachtet haben, hören Sie das Piepen der Festplatte. Dies liegt daran, dass der Speicher dieses Programms durch häufig ausgeführte Programme „gestohlen“ und im Swap-Bereich abgelegt wurde. Sobald dieses Programm im Frontend platziert ist, ruft es daher seine Daten aus dem Swap-Bereich ab, legt sie im Speicher ab und läuft dann weiter.

Außerdem werden nicht alle aus dem physischen Speicher ausgelagerten Daten in Swap verschoben (wenn ja, wird Swap überlastet), ein beträchtlicher Teil der Daten wird direkt in das Dateisystem ausgelagert . Beispielsweise öffnen einige Programme einige Dateien und lesen und schreiben Dateien (tatsächlich muss jedes Programm mindestens eine Datei öffnen, bei der es sich um das laufende Programm selbst handelt, wenn der Speicherplatz dieser Programme ausgelagert werden muss). nicht erforderlich Die Daten im Dateiteil werden im Swap-Bereich abgelegt, können aber direkt in der Datei abgelegt werden. Wenn es sich um einen Dateilesevorgang handelt, werden die Speicherdaten direkt freigegeben und müssen nicht ausgelagert werden, da sie beim nächsten Mal direkt aus dem Dateisystem wiederhergestellt werden können, wenn es sich um einen Dateischreibvorgang handelt, nur die geänderten Daten muss zur Wiederherstellung in der Datei gespeichert werden. Die Daten von Objekten, die von malloc und neuen Funktionen generiert werden, sind jedoch unterschiedlich. Sie benötigen Swap-Speicherplatz, da sie keine entsprechenden „Reserve“-Dateien im Dateisystem haben, weshalb sie als „anonyme“ Speicherdaten bezeichnet werden. Zu dieser Art von Daten gehören auch einige Status- und Variablendaten im Stapel. Daher ist Swap Space ein Austauschraum für „anonyme“ Daten.

Durchbrechen des 128M-Swap-Limits

Einige Linux-Installationshandbücher (inländische chinesische Version) enthalten folgende Anweisungen: Der Swap-Speicherplatz darf 128M nicht überschreiten. Warum wird das gesagt? Bevor ich den Ursprung der Zahl „128M“ erkläre, möchte ich zunächst eine Antwort auf die Frage geben: Es gibt derzeit überhaupt kein 128M-Limit! Die aktuelle Grenze liegt bei 2G!

Der Swap-Bereich im Linux-System ist ausgelagert, und die Größe jeder Seite entspricht der Größe der Speicherseite, was den Datenaustausch zwischen dem Swap-Bereich und dem Speicher erleichtert. Als alte Linux-Versionen den Swap-Space implementierten, verwendeten sie die erste Seite des Swap-Space als „Bitmap“ für alle Swap-Space-Seiten. Dies bedeutet, dass jedes Bit auf der ersten Seite einer Seite des Swap-Bereichs entspricht. Wenn dieses Bit 1 ist, bedeutet dies, dass der Swap dieser Seite verfügbar ist. Wenn es 0 ist, bedeutet dies, dass diese Seite ein fehlerhafter Block ist und nicht verwendet werden kann. Auf diese Weise sollte das erste Swap-Mapping-Bit 0 sein, da die erste Swap-Seite eine Mapping-Seite ist. Darüber hinaus werden auch die letzten 10 Mapping-Bits belegt, um die Swap-Version anzuzeigen (die ursprüngliche Version ist Swap_space, die aktuelle Version ist swapspace2). Wenn dann die Größe einer Seite s beträgt, kann diese Swap-Implementierungsmethode insgesamt „8 * (s – 10) – 1“ Swap-Seiten verwalten. Für das i386-System, s=4096, beträgt die Gesamtspeichergröße 133890048. Wenn 1 MB=2^20 Byte berücksichtigt wird, beträgt die Größe genau 128 MB.
Der Zweck der Verwaltung des Swap-Speicherplatzes auf diese Weise besteht darin, fehlerhafte Blöcke im Swap-Speicherplatz zu verhindern. Wenn das System erkennt, dass es fehlerhafte Blöcke in Swap gibt, markiert es 0 auf der entsprechenden Bitmap, was darauf hinweist, dass diese Seite nicht verfügbar ist. Auf diese Weise werden bei Verwendung von Swap keine fehlerhaften Blöcke verwendet und verursachen Fehler im System.

Aktuelle Systemdesigner glauben:

1. Die Qualität der Festplatten ist mittlerweile sehr gut, es gibt nur sehr wenige fehlerhafte Blöcke.
2. Selbst wenn es welche gibt, müssen Sie nur die fehlerhaften Blöcke auflisten und es ist nicht erforderlich, für jede Seite eine Zuordnung zu erstellen.
3. Wenn viele fehlerhafte Blöcke vorhanden sind, sollte diese Festplatte nicht als Swap-Speicherplatz verwendet werden.

Als Ergebnis bricht Linux jetzt die Bitmapping-Methode ab und hebt damit die 128M-Grenze auf. Zugriff direkt per Adresse, beschränkt auf 2G.

Die Auswirkung der Swap-Konfiguration auf die Leistung

Die Zuweisung von zu viel Swap-Speicherplatz verschwendet Speicherplatz, und wenn zu wenig Swap-Speicherplatz vorhanden ist, treten Systemfehler auf.

Wenn der physische Speicher des Systems aufgebraucht ist, läuft das System sehr langsam, aber es kann immer noch laufen, wenn der Swap-Speicherplatz aufgebraucht ist, tritt ein Fehler im System auf. Beispielsweise kann ein Webserver mehrere Dienstprozesse (oder Threads) basierend auf einer unterschiedlichen Anzahl von Anforderungen erzeugen. Wenn der Swap-Speicherplatz aufgebraucht ist, kann der Dienstprozess nicht gestartet werden und es tritt normalerweise die Fehlermeldung „Anwendung hat nicht genügend Speicher“ auf. In schweren Fällen kann es zu einem Deadlock des Serviceprozesses kommen. Daher ist die Zuweisung von Swap-Speicherplatz sehr wichtig.

Im Allgemeinen sollte der Swap-Speicherplatz größer oder gleich der Größe des physischen Speichers sein und die Mindestgröße sollte nicht weniger als 64 MB betragen. Normalerweise sollte die Größe des Swap-Speicherplatzes 2–2,5 betragen mal das physische Gedächtnis. Je nach Anwendungsfall sollte es jedoch unterschiedliche Konfigurationen geben: Handelt es sich um ein kleines Desktop-System, wird nur ein geringerer Swap-Speicherplatz benötigt, während ein großes Serversystem je nach Situation unterschiedlich große Swap-Speicherplätze benötigt. Insbesondere bei Datenbankservern und Webservern steigen mit zunehmender Anzahl der Besuche auch die Anforderungen an den Swap-Speicherplatz. Informationen zu spezifischen Konfigurationen finden Sie in den Anweisungen des jeweiligen Serverprodukts.

Darüber hinaus hat auch die Anzahl der Swap-Partitionen einen großen Einfluss auf die Leistung. Da es sich bei der Swap-Operation um eine Festplatten-E/A-Operation handelt, wird bei mehreren Swap-Bereichen die Zuweisung von Swap-Speicherplatz rotierend für alle Swaps durchgeführt, wodurch die E/A-Last stark ausgeglichen und der Swap-Austausch beschleunigt wird. Wenn nur ein Swap-Bereich vorhanden ist, ist der Swap-Bereich durch alle Swap-Vorgänge sehr ausgelastet, sodass das System die meiste Zeit in einem Wartezustand bleibt, was sehr ineffizient ist. Wenn Sie Tools zur Leistungsüberwachung verwenden, werden Sie feststellen, dass die CPU zu diesem Zeitpunkt nicht sehr ausgelastet ist, das System jedoch langsam ist. Dies zeigt, dass der Engpass bei E/A liegt und das Problem nicht durch Erhöhen der CPU-Geschwindigkeit gelöst werden kann.
Systemleistungsüberwachung

Die Zuweisung von Swap-Speicherplatz ist sicherlich wichtig, aber die Leistungsüberwachung während des Systembetriebs ist noch wertvoller. Mithilfe von Leistungsüberwachungstools können Sie verschiedene Leistungsindikatoren des Systems überprüfen und Systemleistungsengpässe finden. In diesem Artikel werden nur einige Befehle und Verwendungen im Zusammenhang mit Swap unter Solaris vorgestellt.

Am häufigsten wird der Befehl Vmstat verwendet (auf den meisten Unix-Plattformen gibt es solche Befehle). Mit diesem Befehl können die meisten Leistungsindikatoren angezeigt werden. Beispiel:

vmstat 3

procs memory swap io system cpu 
r b w swpd free buff cache si so bi bo in cs us sy id 
0 0 0 0 93880 3304 19372 0 0 10 2 131 10 0 0 99 
0 0 0 0 93880 3304 19372 0 0 0 0 109 8 0 0 100 
0 0 0 0 93880 3304 19372 0 0 0 0 112 6 0 0 100 
…………

Befehlsbeschreibung:

Die Parameter nach vmstat geben das Zeitintervall für die Leistungsindikatorerfassung an. 3 bedeutet, dass alle drei Sekunden erfasst wird. Die erste Datenzeile muss nicht gelesen werden, sie hat keinen Wert. Sie spiegelt nur die durchschnittliche Leistung seit dem Start wider. Ab der zweiten Zeile werden alle drei Sekunden Systemleistungsindikatoren angezeigt. Zu diesen Leistungsindikatoren im Zusammenhang mit Swap gehören die folgenden:

w unter procs

Es zeigt an, dass Speicher und Austausch derzeit freigegeben werden müssen (innerhalb von drei Sekunden). Die Anzahl der ausgehenden Prozesse.

swpd unter Speicher

Gibt die Größe des verwendeten Swap-Speicherplatzes an.

si unter Swap, also

si stellt die aktuelle (innerhalb von drei Sekunden) Gesamtspeichermenge dar, die pro Sekunde zurückausgelagert (Swap-in) wird, in KB. ;so stellt dar die aktuelle (innerhalb von drei Sekunden) Gesamtmenge des pro Sekunde ausgelagerten Speichers (Swap out) in KB.

Je größer die Anzahl der oben genannten Indikatoren ist, desto ausgelasteter ist das System. Die durch diese Indikatoren dargestellte Systemauslastung hängt mit der spezifischen Konfiguration des Systems zusammen. Der Systemadministrator sollte die Werte dieser Indikatoren aufschreiben, wenn das System normal läuft. Wenn ein Problem mit dem System auftritt, vergleichen Sie es, finden Sie das Problem schnell und formulieren Sie Standardindikatorwerte für den normalen Betrieb des Systems zur Leistungsüberwachung.

Darüber hinaus können Sie Swapon-s verwenden, um die aktuelle Nutzung von Swap-Ressourcen einfach zu überprüfen. Zum Beispiel:

swapon -s

Dateiname Typ Größe Verwendete Priorität

/dev/hda9 Partition 361420 0 3

can Seien Sie praktisch. Sie können die Größe der verwendeten und ungenutzten Ressourcen im Swap-Bereich deutlich sehen.

Die Swap-Last sollte unter 30 % gehalten werden, um eine gute Leistung des Systems zu gewährleisten.

Um den Swap-Speicherplatz zu vergrößern, führen Sie die folgenden Schritte aus:

1) Werden Sie Superuser

$su - root

2) Auslagerungsdatei erstellen

dd if=/dev/zero of=swapfile bs=1024 count=65536

Erstellen Sie eine Auslagerungsdatei mit kontinuierlichem Speicherplatz.

3) Auslagerungsdatei aktivieren

/usr/sbin/swapon swapfile

swapfile bezieht sich auf die im vorherigen Schritt erstellte Auslagerungsdatei.

4) Jetzt ist die neu hinzugefügte Swap-Datei wirksam, aber nach dem Neustart des Systems werden die vorherigen Schritte nicht mehr gespeichert. Daher sollten der Dateiname und der Swap-Typ in der Datei /etc/fstab aufgezeichnet werden, z. B.:

/path/swapfile none Swap sw,pri=3 0 0

5) Überprüfen Sie, ob die Swap-Datei mit

/usr/sbin/swapon -s

hinzugefügt wurde, um überschüssigen Swap-Speicherplatz zu löschen.

1) Werden Sie Superuser

2) Verwenden Sie den Swapoff-Befehl, um Swap-Speicherplatz zurückzugewinnen.

#/usr/sbin/swapoff swapfile

3) Bearbeiten Sie die Datei /etc/fstab und entfernen Sie die Entität dieser Swap-Datei.

4) Recyceln Sie diese Datei aus dem Dateisystem.

#rm swapfile

5) Wenn es sich bei diesem Swap-Speicherplatz nicht um eine Datei, sondern um eine Partition handelt, müssen Sie natürlich ein neues Dateisystem erstellen und es dann im ursprünglichen Dateisystem bereitstellen .

Verwandte Empfehlungen:

Oracle Swap 100 % Fallanalyse

So verhindern Sie, dass Oracle die Linux-Swap-Partition verwendet

Wie vermeidet MySQL die Verwendung einer Linux-Swap-Partition und verbessert die Lese- und Schreibleistung?

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Rolle der Swap-Partition unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn