Germany

Ananicy: Setzen Sie Prioritäten für Linux-Programme

David Wolsky

Linux-Distributionen werden für eine Vielzahl von Zwecken erstellt und müssen verschiedene Rollen, Server und Desktops berücksichtigen. Es hat das Potenzial, Desktop-Programme zu optimieren, indem es die Prozesspriorität anpasst.

Vergrößern Mit Ananicy können Sie die (Un-)Bedeutung von Hintergrundprozessen ermitteln.

©Zoomik

Programme und Hintergrundprozesse müssen verfügbare Systemressourcen gemeinsam nutzen. Wenn sie beschäftigt sind, warten laufende Prozesse aufeinander. Wie diese Warteschlange aufgebaut ist und nach welcher Logik die laufenden Prozesse CPU- und I/O-Operationen zugeordnet werden, entscheidet der Linux-Kernel-Scheduler. In universellen Linux-Distributionen wie Debian und Ubuntu arbeiten Programmierer an einer ausgewogenen Ressourcenverteilung. Nur wenige Dienste wie Soundserver Pulse Audio und Pipewire erhalten eine höhere Priorität bei der Zuweisung von CPU-Zyklen.

Zurücksetzen für den Desktop

Das hier vorgestellte Tool Ananicy verfolgt den Ansatz, vordefinierten Programmen und Prozessen eine höhere oder niedrigere CPU- und I/O-Priorität zu geben. Es schaltet die automatische Priorisierung aus und arbeitet mit einer Datenbank bekannter Programme und Spiele, um diese zu priorisieren. Das Ziel ist es, typischen Vordergrundprozessen Priorität zu geben und Prozessen, die länger laufen, wie z. B. Paketen, eine niedrigere Priorität zu geben, damit der Desktop reaktionsfähig bleibt. Desktop-Systeme mit bescheidener Hardwarekonfiguration profitieren am meisten von Ananicy. Für Server ist diese Optimierung nicht geeignet, zumal diese Priorisierung die Gesamtperformance bei der typischen Auslastung dieser Systeme nicht verbessert. Ananicys Name ist die Abkürzung für „Another Auto Nice Daemon“, was von seiner Funktionsweise herrührt. Denn es stört die Priorisierung über die Systemtools „nice“ und „ionice“.

CPU-Priorität:

Dies wird durch den netten Wert aller Unix-ähnlichen Systeme bestimmt. „Nice“ bedeutet eigentlich „nett“, weil der Wert bestimmt, wie nett ein Programm zu anderen laufenden Prozessen ist. Je höher die Dringlichkeit, desto niedriger und weniger „nice“ ist der Nice-Wert. Der Wert kann zwischen -20 und +19 liegen, wobei -20 die höchste und 19 die niedrigste Priorität angibt.

Wenn bereits ein Programm läuft, kann das nice-Kommandozeilentool den nice-Wert zurücksetzen. Nicht-Root-User dürfen nur gute Werte in Richtung zwischen 0 und 19 setzen und damit nur eigene Prozesse degradieren. Mit Root-Rechten können Sie die Priorität auch mit negativen netten Werten erhöhen. Damit der Linux-Kernel diesen Rang berücksichtigt, muss das „Autogrouping“-Feature (siehe Kasten) aktueller Linux-Distributionen deaktiviert werden, was Ananicy automatisch erledigt.

E/A-Priorität:

Das Gegenstück zu nice ist ionice für die Medienzugriffspriorität. Dieser Wert folgt der Logik eines guten Werts für CPU-Prioritäten und wirkt sich auf den „CFG“-Kernel-I/O-Scheduler aus, der diese Rangfolge berücksichtigt. Der Kernel kann mit verschiedenen I/O-Schedulern arbeiten und es hängt davon ab, welcher aktiviert ist. Die „noop“- und „deadline“-Scheduler, die automatisch aktuelle Linux-Distributionen für SSD- und NVME-Geräte auswählen, ignorieren diese Priorität und überlassen die Abwicklung geplanter I/O-Operationen den Controllern dieser Geräte. Auch die Verwendung der CFQ- und BFQ-Scheduler führt bei diesen Medien nicht zu spürbaren Verbesserungen über ionice.

Richten Sie ananicy als Systemdienst ein

Erweitern von Optimierungsregeln: Ananicy identifiziert Prozesse und wendet dann die von vielen Benutzern gelernten Erfahrungen an, um den Desktop reaktionsfähig zu halten.

Die Entwickler hinter Ananicy haben die Prozesspriorisierung als Systemdienst implementiert und in Python 3 geschrieben. Es gibt weniger Abhängigkeiten von zusätzlich benötigten Bibliotheken und auch das Kompilieren des Tools entfällt. Es gibt eine universelle Einrichtungsanleitung und ein praktisches Installationsskript für Debian/Ubuntu unter . Auf diese Weise ist Ananicy unkompliziert eingerichtet, und wenn auf einem Desktop-System keine spürbare Besserung eintritt, lässt sich diese Prozessoptimierung auch schnell wieder abschalten und sauber deinstallieren. Auch für Arch Linux und Manjaro gibt es im Arch User Repository ein fertiges Paket. Das Tool lädt Sie ein, mit diesen Verteilungen zu experimentieren.

Unter Debian und Ubuntu wird der Befehl installiert

sudo apt installiere git schedtool

im Git-Terminal und ein weiteres Systemtool, das die aktuelle Priorität von Prozessen ausliest. Dann nimm den Befehl