Dynamisch wachsende Auslagerungsdatei auf Debian

10

Ich weiß, wie man eine Auslagerungsdatei erstellt und als Auslagerungsdatei verwendet. Aber ich muss die Größe der Datei vorher konfigurieren und der Speicherplatz auf der Festplatte wird verwendet, ob der Swap verwendet wird oder nicht.

Wie erstelle ich einen Swap mit einer Anfangsgröße von 0 und wächst bei Bedarf?

rubo77
quelle
@ Gilles: Ich bin nur neugierig - Warum hast du den Titel bearbeitet (abgesehen vom Tippfehler)? Ist es nicht erwünscht, hier vollständig ausgesprochene Fragen zu haben?
rubo77
1
Es ist besser, nutzlose Wörter zu vermeiden, besonders zu Beginn des Titels, wo die Leute am meisten aufpassen. Siehe Wie schreibe ich einen guten Titel? . "Dynamisch wachsender Swap" gibt die wesentliche Idee. "Wie erstelle ich" zeigt nicht an, worum es bei der Frage geht. Es gibt Leute, die es vorziehen, Fragen zu Fragetiteln zu stellen, weil sie Fragen sind, aber es ist ein dummer Grund: Der Titel ist auch der Titel der Antworten.
Gilles 'SO - hör auf böse zu sein'

Antworten:

3

Swapspace ist alt und nicht gewartet und könnte eines Tages zu Problemen in modernen Systemen führen. Ich denke, dass die beste Lösung für den dynamischen Tausch darin besteht:

sudo apt install dphys-swapfile
sudo update-rc.d dphys-swapfile enable

Einstellung dann CONF_SWAPFACTOR=2in /etc/dphys-swapfileund schließlich

sudo service dphys-swapfile start
Denis Pitzalis
quelle
Dies funktioniert, aber denken Sie daran, dass Sie ohne Tausch besser dran sein könnten, siehe unix.stackexchange.com/a/136133/20661
rubo77
10

SwapSpace ist ein Dienstprogramm, das eine 'dynamische Auslagerungsdatei' erstellt, deren Größe sich entsprechend den Anforderungen des Betriebssystems ändert.

Sie können also sogar vergessen, eine virtuelle Auslagerungsdatei zu erstellen, und einfach „SwapSpace“ installieren. Die Datei wird automatisch für Sie erstellt und bei Bedarf sogar in der Größe geändert.

Sie können "Swapspace" auch neben einer manuell erstellten Auslagerungsdatei verwenden. Wenn die manuell ausgefüllte Datei ausgefüllt wird, erstellt "Swapspace" automatisch eine weitere für das Betriebssystem, sodass das Betriebssystem immer über einen Auslagerungsbereich verfügt und die Stabilität verbessert.

Eine weitere nützliche Sache bei „SwapSpace“ ist, dass, wann immer dies möglich ist, die Größe des SwapSpace verringert und diese Bytes in das Benutzerdateisystem „freigegeben“ werden. Laut den Entwicklern trägt diese Reduzierung auch dazu bei, die Leistung der Auslagerungsdatei zu steigern ( Außerdem wird Ihr „wertvoller“ Festplattenspeicher nicht verschwendet.

Installieren mit

sudo apt-get install swapspace

Und passen Sie die Konfigurationsdatei an Ihre Bedürfnisse an. Ich habe das Minimum 0auf meinem VM-Debian-Computer mit nur 8 GB Festplatte festgelegt


Zusätzlich habe ich den Austausch so eingestellt 0, dass die Nutzung des wertvollen Festplattenspeichers auf meiner VM minimiert wird:

Öffnen Sie /etc/sysctl.confals Root, um den Systemwechselwert zu ändern . Ändern Sie dann diese Zeile oder fügen Sie sie der Datei hinzu:

vm.swappiness = 0

(Starten Sie neu, damit die Änderung wirksam wird.)

rubo77
quelle
Dies unterstützt swsusp / suspending to swap file nicht, es sei denn, die Größe der erstellten Swap-Datei ist bereits groß genug, um den RAM-Dump aufzunehmen.
Soze
Wie können wir also sicherstellen, dass die Auslagerungsdatei groß genug wird, um den RAM aufzunehmen?
Rubo77
Lassen Sie eine Swap-Datei mit fester Größe die Größe des RAM zum Anhalten haben und verwenden Sie dann den Swapspace für den Swap mit dynamischer Größe
Tom Hale,
Es hat bei mir funktioniert. Dies ist sehr nützlich für kleine SSD-Festplatten.
Adrian Lopez
0

Afaik, jede Swap-Partition, die Sie beispielsweise mit fdisk erstellen würden, würde einen Speicherplatz größer als 0 benötigen, da Sie den Speicherplatz von einer vorhandenen Festplatte ändern und an einer anderen Stelle neu zuweisen.

Wenn Sie Ihre Frage beantworten, können Sie ganz einfach eine kleine Partition erstellen, sie als Swap unter fdisk zuweisen und anschließend:

1) Deaktivieren Sie den Austausch mit swapoff -v 2) Ändern Sie die Größe der Partition mit lvresize 3) Formatieren Sie die Partition mit mkswap 4) Aktivieren Sie den Austauschbereich erneut mitswapon -v

Anschließend können Sie cat /proc/swapsüberprüfen, ob ein Upgrade durchgeführt wurde oder nicht. Sie können dies abhängig von Ihren Systemspezifikationen problemlos für ein Skript verwenden und es bei Bedarf ausführen, wenn Sie diesen Swap-Speicherplatz vergrößern müssen. Etwas wie:

$ swapoff -v /dev/swapvol1
$ lvresize /dev/swapvol1 -L +1G
$ mkswap /dev/swapvol1
$ swapon -v /dev/swapvol1
AleksanderKseniya
quelle
1
Dies beantwortet die Frage nicht, da die Swap-Größe manuell und nicht bei Bedarf geändert wird. Darüber hinaus ist die Größenänderung des LV nicht sinnvoll: Wo finden Sie den Platz zum Wachsen? Wie wird der beim Schrumpfen freiwerdende Platz nicht verschwendet? Die Frage bezieht sich auf eine Auslagerungsdatei, die das Problem des freien Speicherplatzes löst - sie ist für andere Dateien verfügbar.
Gilles 'SO - hör auf böse zu sein'
Das Ändern der Swap-Größe bei Bedarf ist eine gute Idee, aber Swapspace deckt nicht das Szenario ab, in dem Swsusp zur Unterstützung des Ruhezustands verwendet wird. Ich glaube, diese Antwort ist möglicherweise sinnvoller für Benutzer, die Unterstützung für den Ruhezustand benötigen. Bis Swapspace das natürlich besser macht.
Soze