Ich konfiguriere und kompiliere einen neuen 3.0-Kernel. Eine der Extras, die ich für einige Zeit (durch Patchen) verwenden wollte und die in 3.0 zusammengeführt wurden, ist zram.
Ist es möglich, sowohl HDD-Swap als auch Zram-Swap so einzustellen, dass das Zram zuerst verwendet wird und nur verschüttete Seiten in den tatsächlichen Swap übernommen werden?
linux
swap
zram
virtual-memory
Maciej Piechotka
quelle
quelle
max_comp_streams
scheint dies1
der Dokumentation zu entsprechen . Ich habe nicht überprüft, ob dieser Parameter im Jahr 2011 vorhanden war, aber es scheint eine bessere Option zu sein als mehrere Auslagerungsdateien.zram-config
unter Ubuntu (und wahrscheinlich Debian) Ich habe festgestellt, dass die Konfiguration standardmäßig 1 pro Kern oder Thread ist (2 auf einem alten E2140 Dual Core und 4 auf einem i3-3220)swapon
haben-p
Schalter, der die Priorität setzt. Ich kann einrichten:Oder in / etc / fstab:
EDIT: Nur für eine vollständige Lösung - eine solche Zeile kann als udev-Regel hilfreich sein:
quelle
Wählen Sie durch Übergeben aus, wie viele Zram-Geräte Sie möchten
zu Kernel-Parametern oder direkt zum Modul (ohne zram.). Der Standardwert ist 1. zram kann so viele CPUs verwenden, wie Sie Geräte erstellen.
Bereiten Sie das zram0-Gerät vor und stellen Sie die Größe auf 1 GB ein.
Alternativ können Sie dies auch nach der udev-Regel tun. Erstellen Sie einen Swap auf zram0
und aktivieren Sie es mit höherer Priorität als andere Swap-Geräte
quelle
zram0
undzram1
den Wert 10 auf einer Intel T9300-Box mit 2 Kernen festzulegen, wirft es mich mit :swapon: /dev/zram0 or 1: swapon failed: Device or resource busy
.Aus irgendeinem Grund scheint es eine Menge Fehlinterpretationen von https://www.kernel.org/doc/Documentation/blockdev/zram.txt zu geben
Es heißt klar:
Es gibt jedoch einen verbreiteten, anhaltenden urbanen Mythos, dass die maximale Anzahl von Streams 1 beträgt.
Es ist eindeutig nicht wahr.
Die beiden Betriebssysteme, in denen sich zram als effektiv erwiesen hat, Chrome OS & Android bieten Ihnen ein einziges Gerät. Auch sie optimieren
page-cluster
:- aus der Kerneldokumentation für
/proc/sys/vm/*
Verwenden Sie
echo "0" > /proc/sys/vm/page-cluster
diese Option, um eine einzelne Seite zu erzwingen.Vieles scheint von zram_config zu stammen, dem Debian / Ubuntu-Paket, das aus irgendeinem Grund nur eine sehr geringe Korrelation mit den Kerneldokumenten für zram zu haben scheint und eine Reihe chinesischer Flüstern hervorgebracht hat, die im Wesentlichen völlig falsch sein könnten.
Erstellen Sie mit File Swap ein Swap-Laufwerk für jeden Kern? Vielleicht könnte das Ihre Fragen beantworten. Um dies zu sichern, googeln Chrome OS & Android, die erfolgreich mit dem oben genannten Seitencluster arbeiten, da es nicht mit einer Festplatte übereinstimmt, sodass die Latenz verbessert werden kann, einzelne Geräte.
Was ist auch für einen Systemadministrator wichtig für die tatsächliche Verwendung von Mem oder VM Mem? Die meisten Beispiele zeigen die Erstellung über disk_size und ignorieren mem_limit vollständig. disk_size = unkomprimierte VM-Größe. mem_limit = tatsächliches Mem-Footprint-Limit.
Dies macht die Auswahl von disk_size verwirrend, da es sich um eine virtuelle maximale Größe handelt, die vom comp_alg-Verhältnis und dem Overhead von 0,1% der Größe der Festplatte abhängt, wenn sie nicht verwendet wird, und tatsächlich eine Schätzung von mem_limit * (ca. 2 - 4) von sparsam vs. Optimismus.
zram_config prüft nicht einmal, ob der Dienst zuvor verwendet wurde, und überschreibt ihn, während eine einfache Überprüfung der zram sys-Klasse wie unten beschrieben erfolgt.
quelle
Wenn Sie zram aktivieren, hat es automatisch Priorität.
Für Ubuntu 16.04:
/usr/bin/init-zram-swapping
Sie können diese Datei bearbeiten (1. Backup erstellen). Um den verwendeten echten RAM zu verringern, habe ich die Mem-Zeile folgendermaßen geändert:
quelle