So debuggen Sie den langsamen Ruhezustand

So debuggen Sie den langsamen Ruhezustand

Ich habe mehrere PCs/Laptops, auf denen ein aktuelles Ubuntu 20.04 mit derzeit einem 64-Bit-Kernel 5.4.0-74-generic läuft, wie es in den Ubuntu-Standardrepos bereitgestellt wird. Einer davon, ein ziemlich gewöhnlicher PC mit einer Intel i3-CPU, benötigt seit meinem Upgrade von 18.04 auf 20.04 etwas mehr als 2 Minuten zum Ruhezustand.

Verschiedene Ressourcen, die ich zum Debuggen des Ruhezustands gefunden habe, behandeln hauptsächlich das Aufwachen oder das vollständige Versagen des Ruhezustands, nicht jedoch den sehr lange dauernden Suspend-to-Disk-Modus. Das Aufwachen funktioniert einwandfrei und dauert nur Sekunden. Wie kann ich herausfinden, warum der Ruhezustand so lange dauert? Gibt es so etwas wie systemd-analyze blameden Ruhezustand?

Bisher habe ich hinzugefügt und initcall_debug no_console_suspendes wird die Konsole angezeigt, allerdings wird nichts angezeigt, was die lange Zeit erklärt. Es wird „Erkanntes Hängen der Hardwareeinheit“ für die Netzwerkschnittstelle angezeigt. Aber das erscheint gleich zu Beginn des Ruhezustands und ich denke, es ist das erwartete Verhalten.GRUB_CMDLINE_LINUX_DEFAULT/etc/default/grub

Ich systemctl hibernateinitiiere es. Es dauert 2 Minuten bis zum Ausschalten, selbst wenn ich es als Root an der Konsole ausführe und keine anderen Benutzer oder Benutzerprozesse angemeldet sind.

Antwort1

Mein Rat:

  1. EntscheidenStellen Sie eine Frage @ askubuntu.comund nehmen Sie es ernst. ;)Sammeln Sie Daten, reproduzieren Sie Probleme mit minimalen Setups und seien Sie konkret.

  2. Stellen Sie sicher, dass genügend Swap-Speicherplatz vorhanden ist.Der Befehl freegibt die Menge an RAM („Mem“) und Swap an. Der Gesamt-Swap sollte größer sein als der Gesamt-RAM. Mir ist aufgefallen, dass ich irgendwann RAM hinzugefügt habe, aber ich habe die Größe meiner Swap-Partition nicht erhöht.Bearbeiten (07.06.2021):Der Größenunterschied betrug ~1 GB. Nach der Vergrößerung war der Ruhezustand wiederholt schneller, aber ich denke immer noch, dass dies ein Artefakt war, das durch eine Änderung der Schreibgeschwindigkeit der SSD verursacht wurde, auf der sich die Swap-Partition befand. (Siehe auch nächsten Punkt.)

  3. Wie schnell sollte der Ruhezustand erfolgen?Im Wesentlichen wird beim Suspend-to-Disk der gesamte RAM auf die Festplatte geschrieben. Die RAM-Größe und die Schreibgeschwindigkeit der Festplatte bestimmen die benötigte Zeit. Ich habe nach meiner Swap-Partition gesucht und überprüft, wie lange es dauert, sie mit auf Null zu setzen dd if=/dev/zero. ddEs wurde eine Geschwindigkeit von 108 MB/s gemeldet. Das Schreiben von 7 GB dauerte ~65 s. Mein PC hat 8 GB. Ich sollte also damit rechnen, dass der Ruhezustand mindestens eine Minute dauert.

  4. Versuchen zuDebuggen durch Entfernen von Teilendes Systems: Trennen Sie nicht benötigte Hardware. Wechseln Sie direkt nach einem Neustart in den Ruhezustand, mit oder ohne vorherige Anmeldung.

  5. Hinzufügeninitcall_debug no_console_suspendzur Kernel-Befehlszeile, wie in der Frage beschrieben.

Im Moment vermute ich, dass die Gründe für meinen langsamen Ruhezustand folgende sind: Ich habe RAM hinzugefügt (deshalb dauert der Ruhezustand länger), ich habe vergessen, den Swap-Speicher entsprechend dem hinzugefügten RAM zu vergrößern (ich hatte 7 GB Swap, aber 8 GB RAM) und die Schreibgeschwindigkeit der SSD hat mit der Zeit nachgelassen (mindestens um den Faktor 2).

Weiterführende und empfehlenswerte Lektüre:

verwandte Informationen