GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Lese-Swap zurück in den Speicher machen

Es könnte helfen, /proc/sys/vm/page-cluster hochzuladen (Standard:3).

Aus der Kernel-Dokumentation (sysctl/vm.txt ):

Seitencluster

page-cluster steuert die Anzahl der Seiten, bis zu denen aufeinanderfolgende Seiten in einem einzigen Versuch aus Swap eingelesen werden. Dies ist das Swap-Gegenstück zum Seiten-Cache-Readahead. Die erwähnte Konsekutivität bezieht sich nicht auf virtuelle/physikalische Adressen, sondern auf Swapspace aufeinanderfolgend - das heißt, sie wurden zusammen ausgelagert.

Es ist ein logarithmischer Wert - auf Null gesetzt bedeutet "1 Seite", auf 1 gesetzt bedeutet "2 Seiten", auf 2 gesetzt bedeutet "4 Seiten" usw

Der Standardwert ist drei (acht Seiten gleichzeitig). Es kann einige kleine Vorteile haben, dies auf einen anderen Wert einzustellen, wenn Ihre Arbeitslast Swap-intensiv ist.

Niedrigere Werte bedeuten niedrigere Latenzen für anfängliche Fehler, aber gleichzeitig zusätzliche Fehler und E/A-Verzögerungen für nachfolgende Fehler, wenn sie Teil der aufeinanderfolgenden Seiten gewesen wären, die ein Readahead mit sich gebracht hätte.

Die Dokumentation erwähnt keine Grenze, also könnten Sie diese möglicherweise absurd hoch setzen, damit alle Swaps wirklich bald wieder eingelesen werden. Und danach natürlich wieder auf einen vernünftigen Wert stellen.


Es scheint mir, dass Sie das System nicht auf magische Weise "wieder reaktionsfähig machen" können. Entweder erleiden Sie jetzt die Strafe oder das Zurücklesen von Seiten aus dem Auslagerungsbereich in den Speicher oder Sie erleiden sie später, aber auf die eine oder andere Weise erleiden Sie sie. In der Tat, wenn Sie so etwas wie swapoff -a && swapon -a tun dann spürst du vielleicht mehr Schmerz eher als weniger, weil Sie das Zurückkopieren einiger Seiten in den Speicher erzwingen, die andernfalls nie wieder benötigt würden und schließlich gelöscht würden, ohne gelesen zu werden (denken Sie:Sie beenden eine Anwendung, während ein Großteil ihres Heaps ausgelagert ist; diese Seiten können sein vollständig verworfen, ohne jemals wieder in den Speicher eingelesen zu werden).

aber dadurch werden die Seiten aus dem Austausch gelöscht, sodass sie beim nächsten Ausführen des Skripts erneut geschrieben werden müssen.

Nun, so ziemlich jede Seite, die aus dem Swap-Speicher in den Hauptspeicher zurückkopiert wird, wird sowieso geändert. Wenn sie also jemals wieder in den Swap-Speicher verschoben werden muss, müsste sie sowieso neu in den Swap-Speicher geschrieben werden. Denken Sie daran, dass es sich bei Swap hauptsächlich um Heap-Speicher handelt, nicht um Nur-Lese-Seiten (die normalerweise dateigesichert sind).

Ich denke, Ihr swapoff -a && swapon -a Trick ist so gut wie alles, was dir einfällt.


Sie können versuchen, die Programme, die Ihnen am wichtigsten sind, zu einer Kontrollgruppe hinzuzufügen und die Austauschbarkeit so einzustellen, dass die von Ihnen hinzugefügten Programme beim nächsten Ausführen der Anwendung weniger wahrscheinlich Kandidaten für den Austausch sind.

Einige ihrer Seiten werden wahrscheinlich immer noch ausgelagert, aber es kann Ihre Leistungsprobleme umgehen. Ein großer Teil davon ist wahrscheinlich nur das "Stopp-und-Start"-Verhalten, wenn viele Seiten eines Programms im Austausch sind und das Programm ständig pausieren muss, um seine Seiten in den Arbeitsspeicher zu verschieben, aber nur in 4k-Schritten.

Alternativ können Sie die ausgeführte Anwendung zu einer Cgroup hinzufügen und die Auslagerung so einstellen, dass die Anwendung die Auslagerungsdatei am häufigsten verwendet. Es verlangsamt die Anwendung, schont aber den Rest des Systems.


Linux
  1. Erstellen Sie eine Linux-Auslagerungsdatei

  2. Die ultimativen Linux-Interviewfragen:Swap

  3. Linux-Zwischenablage lesen/schreiben in C

  4. mmap:wird die zugeordnete Datei sofort in den Speicher geladen?

  5. Wie liest man Linux Manpages?

So durchsuchen und lesen Sie das gesamte Arch-Wiki als Linux-Manpages

Verwalten von Swap im modernen Linux-System

So löschen Sie den Auslagerungsspeicher unter Linux

So löschen Sie den RAM-Speicher-Cache, den Puffer und den Swap-Speicher unter Linux

So deaktivieren Sie Swap dauerhaft unter Linux

Wie funktioniert Swap-Speicher in Linux?