Ionice: Unterschied zwischen den Versionen
K Textersetzung - „line>“ durch „line copy>“  | 
				|||
| (18 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 2: | Zeile 2: | ||
== Beschreibung ==  | == Beschreibung ==  | ||
Dieses Programm setzt oder ermittelt die E/A-Scheduling-Klasse und -Priorität eines Prozesses  | 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  | 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 ===  | === 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  | ||
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  | ||
Benutzer erlaubt (seit Kernel 2.6.25)  | * 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  | ; Best-effort  | ||
Dies ist die effektive Scheduling-Klasse für jeden Prozess, der keine spezifische E/A-Priorität angefordert hat  | Dies ist die effektive Scheduling-Klasse für jeden Prozess, der keine spezifische E/A-Priorität angefordert hat  | ||
Priorität ausdrückt  | * 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   | 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  | ||
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  | |||
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  | 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  | ||
Prozesses abgeleitet (wie auch in Kernels vor 2.6.26)  | * Die E/A-Priorität wird aus der CPU-Nice-Stufe des Prozesses abgeleitet (wie auch in Kernels vor 2.6.26)  | ||
; 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  | ||
verwendet werden, weil sie andere Prozesse regelrecht   | * Deshalb sollte die Realtime-Klasse mit gewisser Vorsicht verwendet werden, weil sie andere Prozesse regelrecht ''aushungern'' kann  | ||
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  | |||
== Installation ==  | == Installation ==  | ||
| Zeile 31: | 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  | ||
ionice [-c Klasse] [-n Stufe] [-t] -p UID  | ionice [-c Klasse] [-n Stufe] [-t] -p UID  | ||
ionice [-c Klasse] [-n Stufe] [-t] Befehl [Argument]   | ionice [-c Klasse] [-n Stufe] [-t] Befehl [Argument] ..  | ||
</syntaxhighlight>  | </syntaxhighlight>  | ||
| Zeile 45: | 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  | ||
Prioritätsstufe  | * Dies ist nur wirksam, wenn die Klasse ein Argument akzeptiert  | ||
* Für ''Realtime'' und ''Best-Effort'' sind 0-7 möglich (als Prioritätsstufen) und ''0'' repräsentiert die höchste  | |||
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 || --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  | | -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  | | -t || --ignore || || ignoriert fehlgeschlagenes Setzen der angeforderten Priorität  | ||
kann bei unzureichenden Zugriffsrechten oder alten Kernel-Versionen passieren  | * Falls ein Befehl angegeben wurde, wird dieser selbst dann ausgeführt, wenn es nicht möglich war, die gewünschte Scheduling-Priorität zu setzen  | ||
* Dies  | |||
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  | | -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  | | -h || --help || || zeigt einen Hilfetext an und beendet das Programm  | ||
|-  | |-  | ||
| -V || --version || || zeigt Versionsinformationen an und beendet das Programm  | | -V || --version || || zeigt Versionsinformationen an und beendet das Programm  | ||
|}  | |}  | ||
===   | === Argumente ===  | ||
=== Umgebungsvariablen ===  | === Umgebungsvariablen ===  | ||
=== Exit-Status ===  | === Exit-Status ===  | ||
== Anwendung ==  | == Anwendung ==  | ||
;   | ; 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  | ||
<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  | ||
<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 89: | 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:  | {{DEFAULTSORT:ionice}}  | ||
{{DISPLAYTITLE:  | {{DISPLAYTITLE:ionice}}  | ||
[[Kategorie:  | [[Kategorie:Linux/Prozess/Befehl]]  | ||
Linux   | |||
[[Kategorie:util-linux]]  | [[Kategorie:util-linux]]  | ||
[[Kategorie:Linux/Befehl]]  | [[Kategorie:Linux/Befehl]]  | ||
</noinclude>  | |||
Aktuelle Version vom 11. Mai 2025, 12: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