Heim > Betrieb und Instandhaltung > Betrieb und Wartung von Linux > So lösen Sie das Problem der hohen Auslastung des Linux-Swap-Speicherplatzes

So lösen Sie das Problem der hohen Auslastung des Linux-Swap-Speicherplatzes

WBOY
Freigeben: 2023-05-27 12:37:26
nach vorne
3001 Leute haben es durchsucht

    Was ist Swap?

    Swap-Speicherplatz ist ein Bereich auf der Festplatte, der eine Partition, eine Datei oder eine Kombination davon sein kann.

    Um es einfach auszudrücken: Wenn der physische Speicher des Systems knapp ist, speichert Linux Daten, auf die selten zugegriffen wird, im Speicher, um sie auszutauschen, sodass das System über mehr physischen Speicher verfügt, um jeden Prozess zu bedienen, und wenn das System auf den Speicher zugreifen muss Tauschen Sie den Inhalt aus und laden Sie dann die Daten beim Auslagern in den Speicher. Dies wird oft als Auslagern und Einlagern bezeichnet.

    Warum brauchen wir einen Tausch?

    Um diese Frage zu beantworten, müssen wir beantworten, welche Vorteile der Tausch für uns bringt.

    Bei einigen großen Anwendungen (wie LibreOffice, Video-Editor usw.) wird während des Startvorgangs viel Speicher verwendet, dieser Speicher wird jedoch häufig nur während des Startvorgangs und bei nachfolgenden Vorgängen nur selten verwendet diese Erinnerungen. Mit Swap kann das System diesen Teil der Speicherdaten, der auf diese Weise nicht verwendet wird, im Swap speichern und so mehr physischen Speicher für die Nutzung durch das System freigeben.

    Die Ruhezustandsfunktion vieler Distributionen (z. B. Ubuntu) basiert auf der Swap-Partition. Wenn das System in den Ruhezustand wechselt, werden die Daten beim nächsten Systemstart in die Swap-Partition gespeichert , was den Systemstart beschleunigen kann. Wenn Sie also die Ruhezustandsfunktion nutzen möchten, müssen Sie die Swap-Partition konfigurieren und die Größe muss größer oder gleich dem physischen Speicher sein.

    In manchen Fällen ist der physische Speicher begrenzt, aber was soll ich tun, wenn ich ein speicherintensives Programm ausführen möchte? Zu diesem Zeitpunkt können Sie das Ziel erreichen, indem Sie genügend Auslagerungsspeicher konfigurieren. Obwohl es etwas langsamer ist, kann es zumindest ausgeführt werden.

    Obwohl der physische Speicher in den meisten Fällen ausreicht, gibt es immer unerwartete Situationen, z. B. wenn ein Prozess mehr Speicher als erwartet benötigt oder ein Prozess einen Speicherverlust aufweist usw. Wenn der Speicher nicht ausreicht, wird der OOM-Killer des Kernels dies tun Je nach Konfiguration des OOM-Killers werden einige Prozesse beendet oder das System wird direkt neu gestartet (standardmäßig wird zuerst der Prozess beendet, der den meisten Speicher verbraucht). Mit Swap können Sie jedoch Swap als verwenden Obwohl es etwas langsam ist, gibt es uns zumindest die Möglichkeit, den Prozess zu debuggen, abzubrechen oder den aktuellen Arbeitsfortschritt zu speichern.

    Wenn Sie Linux-Speicherverwaltung gesehen haben, wissen Sie, dass das System so viel freien Speicher wie möglich für den Cache verwendet, um die E/A-Geschwindigkeit des Systems zu beschleunigen. Wenn Sie also weniger häufig verwendete Speicherdaten zum Auslagern verschieben können , können Sie mehr physischen Speicher für den Cache verwenden und dadurch die Gesamtsystemleistung verbessern.

    Nachteile von Swap?

    Die Vorteile von Swap wurden oben vorgestellt, aber was ist mit den Nachteilen von Swap? Swap wird auf der Festplatte gespeichert. Die Geschwindigkeit der Festplatte ist um mehrere Größenordnungen langsamer als die des Speichers. Wenn Sie weiterhin lesen und schreiben, wirkt sich dies definitiv auf die Leistung des Systems aus, insbesondere wenn das System ausgeschaltet ist Der Speicher ist sehr knapp, sodass das System sehr langsam läuft, als wäre es tot. Zu diesem Zeitpunkt ist das Hinzufügen von physischem Speicher die einzige Lösung.

    Da das System selten verwendete Speicherdaten automatisch in den Swap verschiebt, kann es bei Desktop-Programmen zu einer kleinen Pause kommen, wenn Sie ein Programm minimieren und es dann erneut öffnen, da die Daten im Swap neu geladen werden müssen Erinnerung.

    Sollen wir tauschen?

    Das Obige stellt vor, was Swap ist und welche Vor- und Nachteile es hat. Sollten wir also Swap konfigurieren? Die Antwort lautet: Es kommt darauf an.

    Im Folgenden wird die Wahl des Swaps in Server- und Desktop-Umgebungen in drei Situationen erläutert: unzureichender Speicher, kaum genügend Speicher und ausreichend Speicher.

    Unzureichender Speicher

    Wenn der physische Speicher offensichtlich nicht ausreicht und Sie das Programm ausführen möchten, ist das Hinzufügen von Swap besser, als überhaupt nicht zu funktionieren.

    Der Speicher reicht kaum aus

    Es wird empfohlen, Swap so zu konfigurieren, dass der Kernel selten verwendete Daten aus dem Speicher in den Swap verschiebt, wodurch mehr physischer Speicher für Systemaufrufe zur Verfügung steht, die Systemleistung verbessert wird und auch gelegentliche physische Daten vermieden werden Es reicht nicht aus, den Prozess abnormal zu beenden und die Systemstabilität zu verbessern. Für den Server ist es jedoch erforderlich, die Nutzung des Auslagerungsspeichers zu begrenzen oder zu überwachen /out kommt häufig vor, es müssen rechtzeitig Maßnahmen ergriffen werden, sonst wird das System ernsthaft geschädigt

    Viel Speicher

    Theoretisch, wenn der physische Speicher ausreicht und die Ruhezustandsfunktion nicht benötigt wird , dann ist Swap nutzlos, aber das Hauptproblem besteht darin, dass es für uns schwierig ist, sicherzustellen, dass der physische Speicher unter allen Umständen ausreicht, weil Es gibt immer unerwartete Situationen, wie z. B. bestimmte Prozesse, die mehr Speicher verbrauchen als erwartet, oder der Serverdruck, der die Erwartungen übersteigt , Speicherlecks usw.

    Derzeit geht uns offensichtlich der Speicher aus. Was verursacht den Speichermangel? Warum führt MySQL direkt dazu, dass der Server nicht mehr über genügend Speicher verfügt? Warum kommt es dann zu einem Austausch auf unserem MySQL-Server?

    Angenommen, unser physischer Speicher ist 16G und der Swap ist 4G. Wenn MySQL selbst bereits 12 GB physischen Speicher belegt und gleichzeitig andere Programme oder Systemmodule 6 GB Speicher benötigen, kann das Betriebssystem einen Teil des Adressraums von MySQL zum Auslagern zuordnen.

    Um es ganz klar auszudrücken: Das System denkt, dass der von Ihrem MySQL belegte Speicherplatz zu groß ist und Sie keine besonderen Aufgaben ausführen können. Es muss Platz für andere notwendige Prozessbereiche von mir schaffen, um den Speicher zu nutzen, also sollten Sie zu a gehen langsamerer Wechsel zum Spielen!

    Der größte Speicherbelegungsfaktor in MySQL ist innodb_buffer_pool_size. Sie sollten also überlegen, ob dieser Wert beim ersten Mal unangemessen eingestellt ist.

    Der Speicherverbrauch von MySQL ist unterteilt in:

    • 1. Speicherverbrauch auf Sitzungsebene: z. B. sort_buffer_size usw. Jede Sitzung öffnet eine sort_buffer_size für Sortiervorgänge

    • 2 : innodb_buffer_pool_size usw., global gemeinsam genutzte Speichersegmente

    Hier halte ich unseren DBA für unprofessionell. Wir haben die erste Situation nicht in Betracht gezogen, um den Speicherverbrauch auf Sitzungsebene zu überprüfen, sondern haben mir direkt gesagt, ich solle ihn nach unten anpassen. innodb_buffer_pool_size

    Was wird im Pufferpool von InnoDB zwischengespeichert? Was ist der Nutzen? Was ist die passende Einstellung?

    Tabellendaten und Indexdaten zwischenspeichern, Daten auf der Festplatte in den Pufferpool laden, Festplatten-E/A bei jedem Zugriff vermeiden und den Zugriff beschleunigen.

    Die Parallelitätsleistung von MySQL ist direkt proportional zur vom Pufferpool zugewiesenen Speichergröße. Je größer der zugewiesene Speicher, desto besser ist die Parallelitätsleistung. Sollten alle 99 % des Arbeitsspeichers der Maschine dem Pufferpool zugewiesen werden?

    Natürlich nicht! Ganz zu schweigen davon, dass der Betriebssystemkern neben dem Pufferpool auch viele andere Speicherdatenstrukturen benötigt, sodass die obige Idee definitiv nicht realisierbar ist.

    Ein vernünftigeres Verhältnis sollte sein, dass die Speichergröße des Pufferpools 50 % bis 60 % des Gesamtspeichers der Maschine ausmacht.

    Sie können den Trefferstatus über show engine innodb statusG; überprüfen. Wenn die Trefferquote nicht mehr als 97 % erreicht, können Sie dies natürlich auch mit dem Geschäft in Verbindung bringen Wenn es in anderen Fällen nicht mehr als 97 % erreicht und bei vielen Lesevorgängen nicht mehr als 98 % erreicht wird, handelt es sich um einen Sonderfall. Dies bedeutet, dass der Puffer nicht ausreicht. Wenn jedoch 20 % der Speichertreffer zugewiesen werden, sind es 100 % und es sind viele freie Seiten vorhanden Es reicht auch aus, nach den freien Seiten zu rechnen, um etwas Speicher zu reduzieren, bis er verbraucht ist

    Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem der hohen Auslastung des Linux-Swap-Speicherplatzes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    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
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage