SWAP-Konfiguration für Hiberate bzw. Ruhezustand

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
hokan
Beiträge: 4
Registriert: 16.02.2022 23:47:24

SWAP-Konfiguration für Hiberate bzw. Ruhezustand

Beitrag von hokan » 22.02.2022 09:57:18

Hallo Forum,

auf einem Laptop mit 8 GB RAM habe ich eine SWAP-Partition mit 10 GB. Wenn ich RAM und SWAP stark ausgelastet habe, kann ich leider nicht mehr in Ruhezustand wechseln, weil zuwenig SWAP vorhanden ist.
Mit welcher Konfiguration kann ich sicherstellen, dass ich immer in den Ruhezustand wechseln kann?
Normalen SWAP als RAM-Ergänzung möchte ich weiter nutzen. Kann neben dem normalen SWAP ein spezieller SWAP-Bereich nur für Hiberation eingerichtet werden oder welche Konfiguration könnt ihr dafür vorschlagen?

Am liebsten alles als SWAP-File anstatt separater Partition.

Meine Umgebung:
Debian 11
grub
systemd
LUKS-Verschlüsselung
KDE

Danke und Grüße.

Benutzeravatar
hikaru
Moderator
Beiträge: 13896
Registriert: 09.04.2008 12:48:59

Re: SWAP-Konfiguration für Hiberate bzw. Ruhezustand

Beitrag von hikaru » 22.02.2022 10:26:12

hokan hat geschrieben: ↑ zum Beitrag ↑
22.02.2022 09:57:18
Mit welcher Konfiguration kann ich sicherstellen, dass ich immer in den Ruhezustand wechseln kann?
Streng genomen mit gar keiner, soweit ich weiß.

Praktisch sollte es aber funktionieren, zusätzlich zu deinem regulären Swap-Space, einen zweiten Swap-Space in Größe deines RAM einzurichten, diesen aber im laufenden Betrieb nicht zu aktivieren. Aktiviert wird er erst unmittelbar vor dem Suspend und er wird unmittelbar nach dem Resume wieder deaktiviert. So sollte er nie mit regulären Daten volllaufen.
Ganz sicher ist das allerdings nicht, da es zwischen Aktivieren des Swaps und Auslösen des Suspends zu einer Race-Condition kommen kann, in welcher der zusätzliche Swap doch vollläuft. Dem könnte man nun versuchen entgegenzuwirken indem man die für den Suspend benötigte Zeit misst und mit Hilfe der vorher ermittelten maximalen Scheibgeschwindigkeit des Swap-Mediums den Swap entsprechend vergrößert. Das setzt aber voraus, dass man sich auf die gemessene Suspend-Zeit verlassen kann, was fraglich ist.

Benutzeravatar
Tintom
Moderator
Beiträge: 3066
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: SWAP-Konfiguration für Hiberate bzw. Ruhezustand

Beitrag von Tintom » 22.02.2022 11:46:55

hikaru hat geschrieben: ↑ zum Beitrag ↑
22.02.2022 10:26:12
Ganz sicher ist das allerdings nicht, da es zwischen Aktivieren des Swaps und Auslösen des Suspends zu einer Race-Condition kommen kann, in welcher der zusätzliche Swap doch vollläuft.
Der Befehl swapon kennt den Schalter -p:

Code: Alles auswählen

-p, --priority priority
Specify the priority of the swap device.  priority is a value between -1 and 32767.  Higher numbers indicate higher priority. [...]
Damit könnte man die erste SWAP-Partition dem Kernel überlassen und die zweite für Hibernation freihalten.

Edit: Ich würde hier aber eher großzügig mit der Hibernation-Partition verfahren, wenn im normalen Betrieb schon Swap benutzt wird, sollte die Hibernation-Partition deutlich größer als der vorhandene RAM sein

Benutzeravatar
hikaru
Moderator
Beiträge: 13896
Registriert: 09.04.2008 12:48:59

Re: SWAP-Konfiguration für Hiberate bzw. Ruhezustand

Beitrag von hikaru » 22.02.2022 12:00:10

Tintom hat geschrieben: ↑ zum Beitrag ↑
22.02.2022 11:46:55
Der Befehl swapon kennt den Schalter -p:

Code: Alles auswählen

-p, --priority priority
Specify the priority of the swap device.  priority is a value between -1 and 32767.  Higher numbers indicate higher priority. [...]
Damit könnte man die erste SWAP-Partition dem Kernel überlassen und die zweite für Hibernation freihalten.
Aber nur so lange die erste Swap-Partition nicht vollläuft. Offenbar hat hokan aber keine (oder nur eingeschränkte) Kontrolle über den Swap-Füllstand. Wenn er die hätte, bräuchte es diesen Thread nicht, denn dann könnte er einfach die erste Swap-Parition entsprechend dimensionieren.

hokan
Beiträge: 4
Registriert: 16.02.2022 23:47:24

Re: SWAP-Konfiguration für Hiberate bzw. Ruhezustand

Beitrag von hokan » 27.02.2022 13:41:59

Hallo zusammen,

Ich habe noch etwas experimentiert, aber ein stabile Lösung finde ich nicht.
Eine Swapfile im normalen Betrieb und vor Hiberation eine weitere große Swapfile hinzufügen. Einmal Hiberation funktioniert damit, aber nachdem Resume konnte ich die große Hibernation-Swapfile nicht wieder mit swapoff deaktivieren, weil dann schon in Benutzung.
Die vorhandene Swapfile im laufenden Betrieb (vor Hibernation) zu vergrößern hat bei mir auch nicht funktioniert (truncate).

Eine praktikable Lösung sehe ich leider nicht. Ich werde eine große Swapfile einrichten und Anwendungen schließen, wenn SWAP nicht ausreicht ich aber Hibernation möchte.

Danke für die Antworten, damit bin ich auch beruhigt, dass ich nicht eine einfache Lösung übersehen habe.

Benutzeravatar
Rawbit
Beiträge: 720
Registriert: 24.12.2004 13:17:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: SWAP-Konfiguration für Hiberate bzw. Ruhezustand

Beitrag von Rawbit » 27.02.2022 15:21:54

Hallo Zusammen,

ob's hier passt weiß ich nicht, auch Hibernation brauche ich nicht oft.

Aber ich verwende seit langem das Programm "Swapspace", das den Swap bei Bedarf
anpasst.

Ob das auch bei Hibernation hilft?


Gruß


Rawbit

Benutzeravatar
Tintom
Moderator
Beiträge: 3066
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: SWAP-Konfiguration für Hiberate bzw. Ruhezustand

Beitrag von Tintom » 27.02.2022 18:22:46

hokan hat geschrieben: ↑ zum Beitrag ↑
27.02.2022 13:41:59
Eine praktikable Lösung sehe ich leider nicht. Ich werde eine große Swapfile einrichten und Anwendungen schließen, wenn SWAP nicht ausreicht ich aber Hibernation möchte.
Wenn du schon am experimentieren bist, könnte evtl. ein Blick auf Debianzram-tools (Einstieg ins Thema) vielleicht weiter helfen:
https://en.wikipedia.org/wiki/Zram hat geschrieben:When used for swap, zram (like zswap) allows Linux to make more efficient use of RAM[...]

rhHeini
Beiträge: 2702
Registriert: 20.04.2006 20:44:10

Re: SWAP-Konfiguration für Hiberate bzw. Ruhezustand

Beitrag von rhHeini » 27.02.2022 23:01:31

... oder mal die Swap-Partition RAM X 2,5 probieren, also 20GiB.

wanne
Moderator
Beiträge: 7547
Registriert: 24.05.2010 12:39:42

Re: SWAP-Konfiguration für Hiberate bzw. Ruhezustand

Beitrag von wanne » 28.02.2022 08:43:02

Also grundsätzlich: Es nützt nichts swap zu "sparen". Also mit kleinerer Swapiness oder anfangs weniger swap. Wenn Auslagerung vermieden werden kann, wird das im Notfall beim hibernate gemacht. Sprich wenn weniger swap dazu führt, dass danach hiberneated werden kann, dann ausschließlich, weil zuerst der OOM-Killer deine Anwendung wegen zu wenig RAM abgeschossen hat. Das kannst du mit kill aber auch selbst machen.
Also sowas ist Quatsch:
Damit könnte man die erste SWAP-Partition dem Kernel überlassen und die zweite für Hibernation freihalten.
Dem könnte man nun versuchen entgegenzuwirken indem man die für den Suspend benötigte Zeit misst und mit Hilfe der vorher ermittelten maximalen Scheibgeschwindigkeit des Swap-Mediums den Swap entsprechend vergrößert.
Da hibernate eh komprimiert (ich hoffe das sich das mit systemd nicht geändert hat. Ich finde keine config optionen mehr dafür), nehme ich an, dass auch Z-RAM das ganze nicht wirklich verbessert. 2x komprimieren hilft meist wenig.
Mit welcher Konfiguration kann ich sicherstellen, dass ich immer in den Ruhezustand wechseln kann?
Du kannst das genau so wenig verhindern, wie dass dir eine Anwendung wegen zu wenig RAM abgeschossen wird. Prinzipiell hast du halt a) Prozessdaten+ b) Programme+ c) Cache/MM-Files, die in RAM und SWAP liegen. b) und c) müssen das nicht und können entfernt werden, wenn zu wenig SWAP da ist. Wenn a) zur Laufzeit nicht in RAM+SWAP passt werden Programme abgeschossen. Ist absehbar, dass a) (komprimiert) nicht vollständig in den SWAP passt verweigert Linux per default den hibernate. Man kann aber auch -k angeben. Dann werden stattdessen Programme gekillt.
Wenn du also jetzt mit 8GiB RAM+4GiB SWAP auskommst, ohne dass im laufenden Betrieb Programme abgeschossen werden. Sollten etwas weniger als 12GiB SWAP immer reichen.

Sonderfall: ZFS: Da wird Cache wie anwendungsdaten gehandelt. Da müssen die ZFS-Wards weiter helfen, wie man das dazu bringt den Cache beim hibernate aufzugeben.

Es gibt eine Ausnahme: SWAP-Files. Auch wenn man dank Systemd SWAP-Files fürs hibernate nutzen kann: Wenn die fragmentieren kann er dass nicht mehr. Da du wenig Einfluss darauf hast sind SWAP-Files eher ungeeignet fürs hibernate.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
Livingston
Beiträge: 1813
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: SWAP-Konfiguration für Hiberate bzw. Ruhezustand

Beitrag von Livingston » 01.03.2022 19:06:21

Spielt da nicht auch der kernel-Parameter resume eine Rolle? Siehe auch https://wiki.archlinux.org/title/Power_ ... parameters
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

Antworten