Ionice: Unterschied zwischen den Versionen
K Textersetzung - „=== Parameter ===↵“ durch „=== Argumente === “ |
K Textersetzung - „line>“ durch „line copy>“ |
||
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 6: | Zeile 6: | ||
Wenn ein Befehl angegeben ist, führt ionice diesen Befehl mit den übergebenen Argumenten aus | Wenn ein Befehl angegeben ist, führt ionice diesen Befehl mit den übergebenen Argumenten aus | ||
* Falls keine Klasse angegeben wird, dann wird der Befehl mit der | * Falls keine Klasse angegeben wird, dann wird der Befehl mit der ''Best-effort''-Scheduling-Klasse ausgeführt | ||
* Die vorgegebene Prioritätsstufe ist 4 | * Die vorgegebene Prioritätsstufe ist 4 | ||
=== Scheduling-Klassen === | === Scheduling-Klassen === | ||
; Idle | ; Idle | ||
Ein Programm, das mit der E/A-Priorität | Ein Programm, das mit der E/A-Priorität ''Idle'' ausgeführt wird, erhält nur Zeit für Festplattenzugriffe zugewiesen, wenn kein weiteres Programm dies für einen bestimmten Zeitraum angefordert hat | ||
* Der Einfluss eines Idle-E/A-Prozesses auf die normalen Systemaktivitäten sollte Null sein | * Der Einfluss eines Idle-E/A-Prozesses auf die normalen Systemaktivitäten sollte Null sein | ||
* Diese Scheduling-Klasse akzeptiert kein Prioritätsargument | * Diese Scheduling-Klasse akzeptiert kein Prioritätsargument | ||
Zeile 21: | Zeile 21: | ||
* Programme, die mit der gleichen Best-Effort-Priorität laufen, werden im Rundlauf-Verfahren bedient | * Programme, die mit der gleichen Best-Effort-Priorität laufen, werden im Rundlauf-Verfahren bedient | ||
Beachten Sie, dass mit Kerneln älter als 2.6.26 ein Prozess, der keine E/A-Priorität angefordert hat, formell | Beachten Sie, dass mit Kerneln älter als 2.6.26 ein Prozess, der keine E/A-Priorität angefordert hat, formell ''none'' als Scheduling-Klasse verwendet | ||
* Doch wird der E/A-Scheduler solche Prozesse so betrachten, als gehörten sie der Best-Effort-Klasse an | * Doch wird der E/A-Scheduler solche Prozesse so betrachten, als gehörten sie der Best-Effort-Klasse an | ||
* Die Priorität innerhalb der Best-Effort-Klasse wird dynamisch aus der CPU-Nice-Stufe des Prozesses abgeleitet: E/A-Priorität = (CPU-Nice-Klasse + 20) / 5 | * Die Priorität innerhalb der Best-Effort-Klasse wird dynamisch aus der CPU-Nice-Stufe des Prozesses abgeleitet: E/A-Priorität = (CPU-Nice-Klasse + 20) / 5 | ||
Zeile 29: | Zeile 29: | ||
; Realtime | ; Realtime | ||
Die Scheduling-Klasse | Die Scheduling-Klasse ''Realtime'' hat Vorrang vor anderen Prozessen bei Festplattenzugriffen, ganz gleich welche anderen Vorgänge im System ablaufen | ||
* Deshalb sollte die Realtime-Klasse mit gewisser Vorsicht verwendet werden, weil sie andere Prozesse regelrecht | * Deshalb sollte die Realtime-Klasse mit gewisser Vorsicht verwendet werden, weil sie andere Prozesse regelrecht ''aushungern'' kann | ||
* Wie auch bei der Best-Effort-Klasse sind 8 Prioritätsstufen verfügbar, welche angeben, wie groß die Zeitscheibe ist, die ein angegebener Prozess in jedem Scheduling-Zeitfenster erhält | * Wie auch bei der Best-Effort-Klasse sind 8 Prioritätsstufen verfügbar, welche angeben, wie groß die Zeitscheibe ist, die ein angegebener Prozess in jedem Scheduling-Zeitfenster erhält | ||
* Diese Scheduling-Klasse ist für einen gewöhnlichen Benutzer ohne Administratorrechte verboten | * Diese Scheduling-Klasse ist für einen gewöhnlichen Benutzer ohne Administratorrechte verboten | ||
Zeile 38: | Zeile 38: | ||
== Aufruf == | == Aufruf == | ||
<syntaxhighlight lang="bash" highlight="1-4" line> | <syntaxhighlight lang="bash" highlight="1-4" line copy> | ||
ionice [-c Klasse] [-n Stufe] [-t] -p PID | ionice [-c Klasse] [-n Stufe] [-t] -p PID | ||
ionice [-c Klasse] [-n Stufe] [-t] -p PGID | ionice [-c Klasse] [-n Stufe] [-t] -p PGID | ||
Zeile 52: | Zeile 52: | ||
| -1 || --single || || Beenden, sobald die erste Anzeige empfangen wird (Standard) | | -1 || --single || || Beenden, sobald die erste Anzeige empfangen wird (Standard) | ||
|- | |- | ||
| -c || --class || Klasse || gibt den Namen oder die Nummer der gewünschten Scheduling-Klasse an. | | -c || --class || Klasse || gibt den Namen oder die Nummer der gewünschten Scheduling-Klasse an. ''0'' für keine, ''1'' für Realtime, ''2'' für Best-Effort, ''3'' für Idle | ||
|- | |- | ||
| -n, || --classdata || Stufe || gibt die Scheduling-Klassendaten an | | -n, || --classdata || Stufe || gibt die Scheduling-Klassendaten an | ||
* Dies ist nur wirksam, wenn die Klasse ein Argument akzeptiert | * Dies ist nur wirksam, wenn die Klasse ein Argument akzeptiert | ||
* Für | * Für ''Realtime'' und ''Best-Effort'' sind 0-7 möglich (als Prioritätsstufen) und ''0'' repräsentiert die höchste | ||
Prioritätsstufe | Prioritätsstufe | ||
|- | |- | ||
Zeile 81: | Zeile 81: | ||
== Anwendung == | == Anwendung == | ||
; Prozess auf Idle-E/A-Prozess setzen | ; Prozess auf Idle-E/A-Prozess setzen | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
sudo ionice -c 3 -p 89 | sudo ionice -c 3 -p 89 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
; Prozess als Best-Effort (höchste Priorität) ausführen | ; Prozess als Best-Effort (höchste Priorität) ausführen | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
sudo ionice -c 2 -n 0 bash | sudo ionice -c 2 -n 0 bash | ||
</syntaxhighlight> | </syntaxhighlight> | ||
; Klasse und Priorität von Prozessen ausgeben | ; Klasse und Priorität von Prozessen ausgeben | ||
<syntaxhighlight lang="bash" highlight="1" line> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
sudo ionice -p 89 91 | sudo ionice -p 89 91 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Zeile 100: | Zeile 100: | ||
== Anhang == | == Anhang == | ||
=== Siehe auch === | === Siehe auch === | ||
{{Special:PrefixIndex/{{BASEPAGENAME}}}} | {{Special:PrefixIndex/{{BASEPAGENAME}}/}} | ||
=== Dokumentation === | |||
; Man-Page | |||
# IONICE(1) Dienstprogramme für Benutzer | # IONICE(1) Dienstprogramme für Benutzer | ||
;Info-Page | |||
=== Links === | |||
==== Projekt ==== | |||
==== Weblinks ==== | |||
{{DEFAULTSORT:ionice}} | {{DEFAULTSORT:ionice}} | ||
{{DISPLAYTITLE:ionice}} | {{DISPLAYTITLE:ionice}} | ||
[[Kategorie:Linux/ | [[Kategorie:Linux/Prozess/Befehl]] | ||
[[Kategorie:util-linux]] | [[Kategorie:util-linux]] | ||
[[Kategorie:Linux/Befehl]] | [[Kategorie:Linux/Befehl]] | ||
</noinclude> | </noinclude> |
Aktuelle Version vom 11. Mai 2025, 13:42 Uhr
ionice - setzt oder ermittelt die E/A-Scheduling-Klasse und -Priorität eines Prozesses
Beschreibung
Dieses Programm setzt oder ermittelt die E/A-Scheduling-Klasse und -Priorität eines Prozesses
- Falls keine Argumente oder nur -p angegeben ist, fragt ionice die aktuelle E/A-Scheduling-Klasse und -Priorität dieses Prozesses ab
Wenn ein Befehl angegeben ist, führt ionice diesen Befehl mit den übergebenen Argumenten aus
- Falls keine Klasse angegeben wird, dann wird der Befehl mit der Best-effort-Scheduling-Klasse ausgeführt
- Die vorgegebene Prioritätsstufe ist 4
Scheduling-Klassen
- Idle
Ein Programm, das mit der E/A-Priorität Idle ausgeführt wird, erhält nur Zeit für Festplattenzugriffe zugewiesen, wenn kein weiteres Programm dies für einen bestimmten Zeitraum angefordert hat
- Der Einfluss eines Idle-E/A-Prozesses auf die normalen Systemaktivitäten sollte Null sein
- Diese Scheduling-Klasse akzeptiert kein Prioritätsargument
- Derzeit ist die Vergabe dieser Scheduling-Klasse einem gewöhnlichen Benutzer erlaubt (seit Kernel 2.6.25)
- Best-effort
Dies ist die effektive Scheduling-Klasse für jeden Prozess, der keine spezifische E/A-Priorität angefordert hat
- Diese Klasse akzeptiert die Prioritäts-Argumente 0-7, wobei die niedrigere Zahl eine höhere Priorität ausdrückt
- Programme, die mit der gleichen Best-Effort-Priorität laufen, werden im Rundlauf-Verfahren bedient
Beachten Sie, dass mit Kerneln älter als 2.6.26 ein Prozess, der keine E/A-Priorität angefordert hat, formell none als Scheduling-Klasse verwendet
- Doch wird der E/A-Scheduler solche Prozesse so betrachten, als gehörten sie der Best-Effort-Klasse an
- Die Priorität innerhalb der Best-Effort-Klasse wird dynamisch aus der CPU-Nice-Stufe des Prozesses abgeleitet: E/A-Priorität = (CPU-Nice-Klasse + 20) / 5
Mit Kerneln der Version 2.6.26 oder neuer mit CFQ-E/A-Scheduler erbt ein Prozess, der keine E/A-Priorität angefordert hat, dessen CPU-Scheduling-Klasse
- Die E/A-Priorität wird aus der CPU-Nice-Stufe des Prozesses abgeleitet (wie auch in Kernels vor 2.6.26)
- Realtime
Die Scheduling-Klasse Realtime hat Vorrang vor anderen Prozessen bei Festplattenzugriffen, ganz gleich welche anderen Vorgänge im System ablaufen
- Deshalb sollte die Realtime-Klasse mit gewisser Vorsicht verwendet werden, weil sie andere Prozesse regelrecht aushungern kann
- Wie auch bei der Best-Effort-Klasse sind 8 Prioritätsstufen verfügbar, welche angeben, wie groß die Zeitscheibe ist, die ein angegebener Prozess in jedem Scheduling-Zeitfenster erhält
- Diese Scheduling-Klasse ist für einen gewöhnlichen Benutzer ohne Administratorrechte verboten
Installation
ionice ist Teil des Pakets util-linux
Aufruf
ionice [-c Klasse] [-n Stufe] [-t] -p PID
ionice [-c Klasse] [-n Stufe] [-t] -p PGID
ionice [-c Klasse] [-n Stufe] [-t] -p UID
ionice [-c Klasse] [-n Stufe] [-t] Befehl [Argument] ..
Optionen
Unix | GNU | Parameter | Beschreibung |
---|---|---|---|
-1 | --single | Beenden, sobald die erste Anzeige empfangen wird (Standard) | |
-c | --class | Klasse | gibt den Namen oder die Nummer der gewünschten Scheduling-Klasse an. 0 für keine, 1 für Realtime, 2 für Best-Effort, 3 für Idle |
-n, | --classdata | Stufe | gibt die Scheduling-Klassendaten an
Prioritätsstufe |
-p | --pid | PID... | gibt die Prozesskennungen (PIDs) der laufenden Prozesse an, für die die Scheduling-Parameter gesetzt oder ermittelt werden sollen |
-P | --pgid | PGID... | gibt die Prozessgruppenkennungen (PGIDs) der laufenden Prozesse an, für die die Scheduling-Parameter gesetzt oder ermittelt werden sollen |
-t | --ignore | ignoriert fehlgeschlagenes Setzen der angeforderten Priorität
kann bei unzureichenden Zugriffsrechten oder alten Kernel-Versionen passieren | |
-u | --uid | UID... | gibt die Benutzerkennungen (UIDs) der laufenden Prozesse an, für die die Scheduling-Parameter gesetzt oder ermittelt werden sollen |
-h | --help | zeigt einen Hilfetext an und beendet das Programm | |
-V | --version | zeigt Versionsinformationen an und beendet das Programm |
Argumente
Umgebungsvariablen
Exit-Status
Anwendung
- Prozess auf Idle-E/A-Prozess setzen
sudo ionice -c 3 -p 89
- Prozess als Best-Effort (höchste Priorität) ausführen
sudo ionice -c 2 -n 0 bash
- Klasse und Priorität von Prozessen ausgeben
sudo ionice -p 89 91
Konfiguration
Dateien
Anhang
Siehe auch
Dokumentation
- Man-Page
- IONICE(1) Dienstprogramme für Benutzer
- Info-Page