Wenn ich eine E / A-intensive Anwendung verwende (wie Virtualbox, Steam-Datenüberprüfung oder sogar dd
), reagiert mein System fast nicht mehr. Obwohl alle mit normaler Priorität gestartet werden, machen sie den Desktop sehr träge und verzögern den Start anderer Anwendungen erheblich.
Ich weiß, dass ich so etwas verwenden kann ionice
, um beispielsweise die Priorität in Leerlauf zu ändern, aber im Fall von Virtualbox, die viele Prozesse hervorruft, wird es schwierig.
Kann ich dem System Hinweise geben, damit beim Starten bestimmter Anwendungen diese mit der geringsten E / A-Priorität gestartet werden?
disk
process-priority
Salem
quelle
quelle
Antworten:
Hinweis: Diese Lösung funktioniert nur mit dem cfq-Scheduler, wie hier erläutert . Sie sollten überprüfen, welche verwendet wird, indem Sie ausstellen
und ändern Sie es gegebenenfalls.
Wenn ich das richtig verstanden habe, möchten Sie, dass
ionice
jedes Mal, wenn Sie einen Befehl starten, eine Einstellung angewendet wird. Sie können es so machen:Der erste Befehl erstellt eine Datei
VirtualBox
mit dem Text in einfachen Anführungszeichen als Inhalt. Dies sollte den vollständigen Pfad zum Programm haben, denn wenn man es nur angibtVirtualBox
, kann es als die gerade erstellte Datei interpretiert und eine "Schleife" erstellt werden.Der zweite Befehl macht es ausführbar und der dritte verschiebt diese neue Datei in einen Ordner, der sich vor dem Ordner "system" bin befindet
/usr/bin
, sodass unsere neue Datei anstelle des Originals ausgeführt wird. Der Teil "$ @" enthält alle Argumente, mit denen der Befehl aufgerufen wurde, sodass sie an den realen VirtualBox-Befehl weitergeleitet werden.Entsprechend der Antwort ("Ja") auf diese Super-User-Frage erben Kinderprozesse Ionice-Prioritäten von ihren Eltern? Wie überprüfen Sie die E / A-Priorität eines laufenden Prozesses? sollte es für
ionice
den übergeordneten Prozess wie folgt ausreichen :Auf der
ionice
Manpage stehen folgende Werte für E / A-Planungsklassen zur Verfügung:Ein Nummern- oder Klassenname kann verwendet werden.
Die
-n level
Option gilt auch für Echtzeit- und Best-Effort-Klassen mit 0-7 als gültigen Daten (Prioritätsstufen).quelle
ionice
den übergeordneten Prozess ausreichen " nicht ein wesentlicher Teil?ionice
Kanncfq
nur mit Scheduler arbeiten! Für weitere Details: unix.stackexchange.com/questions/136226/…Mit dem Befehl 'renice' können Sie Prozesse priorisieren:
Es kann auch sein, dass Ihr Laufwerk zu stark herunterfährt. Wenn Sie also eine Anwendung wie Virtualbox starten möchten, muss sie hochgefahren werden, bevor Sie mit der Arbeit beginnen können (dies kann eine Weile dauern).
quelle