In systemd-Dienstdateien können die folgenden terminbezogenen Optionen festgelegt werden ( korrigieren Sie mich auf der systemd.exec
Manpage , wenn ich falsch liege):
Nice Legt die Standard- Nizza- Ebene (Planungspriorität) für ausgeführte Prozesse fest. Nimmt eine Ganzzahl zwischen -20 (höchste Priorität) und 19 (niedrigste Priorität). Siehe Setpriority (2) für Details.
Welches ist das vertraute schöne Niveau. Es scheint, dass seine Wirkung aufgrund der "Autogroup" -Funktion der jüngsten Linux-Kernel etwas "untergraben" wird. Die folgenden Optionen sind möglicherweise genau das, was ich wirklich einstellen möchte, damit sich die Prozesse für meine Desktop-Erfahrung gut verhalten.
CPUSchedulingPolicy Legt die CPU-Planungsrichtlinie für ausgeführte Prozesse fest. Nimmt eine von anderen, Batch, Idle, Fifo oder rr. Siehe sched_setscheduler (2) für Details.
CPUSchedulingPriority Legt die CPU-Planungspriorität für ausgeführte Prozesse fest. Der verfügbare Prioritätsbereich hängt von der ausgewählten CPU-Planungsrichtlinie ab (siehe oben). Für Echtzeit-Planungsrichtlinien kann eine Ganzzahl zwischen 1 (niedrigste Priorität) und 99 (höchste Priorität) verwendet werden. Siehe sched_setscheduler (2) für Details.
CPUSchedulingResetOnFork Nimmt ein boolesches Argument an. Wenn dies der Fall ist, werden erhöhte CPU-Planungsprioritäten und -Richtlinien beim Verzweigen der ausgeführten Prozesse zurückgesetzt und können daher nicht in untergeordnete Prozesse gelangen. Siehe sched_setscheduler (2) für Details. Der Standardwert ist false.
Ich verstehe die letzte Option. Aus der Erklärung der ersten beiden geht hervor, dass ich eine Planungsrichtlinie und dann angesichts dieser Richtlinie eine Priorität auswählen kann. Mir ist nicht ganz klar, was ich für welche Art von Aufgaben wählen soll. Ist es beispielsweise sicher, für Sicherungsaufgaben "Leerlauf" zu wählen (relativ CPU-intensiv, weil Deduplizierung), oder ist eine andere besser geeignet?
Im Allgemeinen suche ich nach einem verständlichen Überblick über jede Richtlinie mit ihren Prioritäten und ihrer Eignung für bestimmte Zwecke. Auch die Interaktion mit dem netten Level ist von Interesse.
Neben der CPU-Planung gibt es eine E / A-Planung. Ich denke, das entspricht ionice
(korrigiere mich, wenn ich falsch liege).
IOSchedulingClass Legt die E / A-Planungsklasse für ausgeführte Prozesse fest. Nimmt eine Ganzzahl zwischen 0 und 3 oder eine der Zeichenfolgen keine, Echtzeit, Best-Effort oder Leerlauf. Siehe ioprio_set (2) für Details.
IOSchedulingPriority Legt die E / A-Planungspriorität für ausgeführte Prozesse fest. Nimmt eine Ganzzahl zwischen 0 (höchste Priorität) und 7 (niedrigste Priorität). Die verfügbaren Prioritäten hängen von der ausgewählten E / A-Planungsklasse ab (siehe oben). Siehe ioprio_set (2) für Details.
Wir sehen hier die gleiche Struktur wie bei der CPU-Planung. Ich suche auch nach der gleichen Art von Informationen.
Bei allen "Planungs" -Optionen sind die genannten Manpages für mich nicht klar genug, vor allem, wenn es darum geht, Dinge aus der Sicht eines technisch eher geneigten Desktop-Benutzers zu übersetzen.
nice
Wert gilt).