Swap für nur einen Prozess mit cgroups ausschalten?

15

Ich möchte das Tauschen nur für einen Prozess deaktivieren. Swap sollte für die anderen Prozesse wie gewohnt funktionieren.

Wie kann ich das mit cgroups umsetzen?

iNode
quelle

Antworten:

9

Aus der Kernel-Dokumentation zu memory.swappiness:

5.3 swappiness

Ähnlich wie / proc / sys / vm / swappiness, wirkt sich jedoch nur auf eine Hierarchie von Gruppen aus.

Die Austauschbarkeit der folgenden Gruppen kann nicht geändert werden.
- root cgroup (verwendet / proc / sys / vm / swappiness).
- Eine C-Gruppe, die eine Hierarchie verwendet und andere C-Gruppen darunter hat.
- Eine C-Gruppe, die Hierarchie verwendet und nicht die Wurzel der Hierarchie.

Über das Red Hat-Kundenportal:

memory.swappiness

Legt die Tendenz des Kernels fest, den von Tasks in dieser C-Gruppe verwendeten Prozessspeicher auszutauschen, anstatt Seiten aus dem Seiten-Cache zurückzugewinnen. Dies ist die gleiche Tendenz, wie sie in / proc / sys / vm / swappiness für das gesamte System festgelegt wurde. Der Standardwert ist 60. Werte unter 60 verringern die Tendenz des Kernels, den Prozessspeicher auszutauschen, Werte über 60 erhöhen die Tendenz des Kernels, den Prozessspeicher auszutauschen, und Werte über 100 ermöglichen es dem Kernel, Seiten auszutauschen, die Teil von sind Der Adressraum der Prozesse in dieser Gruppe.

Beachten Sie, dass der Wert 0 das Auslagern des Prozessspeichers nicht verhindert. Das Auslagern kann immer noch vorkommen, wenn der Systemspeicher knapp wird, da die globale Verwaltungslogik für den virtuellen Speicher den Wert cgroup nicht liest. Verwenden Sie mlock () anstelle von cgroups, um Seiten vollständig zu sperren.

:: Sie können den Swap-Status der folgenden Gruppen nicht ändern:
* Die Root-C-Gruppe, die den in / proc / sys / vm / swappiness festgelegten Swap-Status verwendet.
* Eine C-Gruppe, unter der sich untergeordnete Gruppen befinden.

BEARBEITEN: Wenn Sie genau wissen möchten, wie Sie es einstellen sollen, stellen Sie es genauso ein wie die meisten anderen cgroup-Attribute:

 # cd /mnt/cgroup/<cgroupName>
 # cat memory.swappiness
 60
 # echo "59 " > memory.swappiness
 # cat memory.swappiness
 59
Bratchley
quelle
Was ist mit nur für Dateien in /tmpals gemountet tmpfs? unix.stackexchange.com/q/146490/56970
CMCDragonkai
Gut, dass Sie hier den relevanten Teil der Kerneldokumentation zitiert haben - der Link ist kaputt.
mgarey
Die Verknüpfung zur Linux-Kerneldokumentation ist unterbrochen. Verwenden Sie stattdessen kernel.org/doc/Documentation/cgroup-v1/memory.txt
Andrew Eisenberg
@ Andrew Eisenberg Fühlen Sie sich frei, die Antwort zu bearbeiten, wenn Sie wollen
Bratchley
Hmmm ... lass mich nicht. Sagt, dass die Bearbeitung länger als 6 Zeichen sein muss. Wahrscheinlich nicht genug Ruf.
Andrew Eisenberg