Ionice: Unterschied zwischen den Versionen
Zeile 2: | Zeile 2: | ||
== Beschreibung == | == 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 == | == Installation == | ||
''ionice'' ist Teil des Pakets [[util-linux]] | ''ionice'' ist Teil des Pakets [[util-linux]] |
Version vom 31. Dezember 2024, 13:31 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. 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 | --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. 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. |
-h | --help | zeigt einen Hilfetext an und beendet das Programm. | |
-V | --version | zeigt Versionsinformationen an und beendet das Programm. |
Parameter
Umgebungsvariablen
Exit-Status
Anwendung
Problembehebung
Konfiguration
Dateien
Anhang
Siehe auch
Dokumentation
Man-Page
- IONICE(1) Dienstprogramme für Benutzer
Info-Pages
Links
Projekt
Weblinks
TMP
ANMERKUNGEN
Linux unterstützt E/A-Scheduling-Prioritäten und -Klassen seit Version 2.6.13 mit dem CFQ-E/A-Scheduler.
BEISPIELE
sudo ionice -c 3 -p 89
setzt den Prozess mit der PID 89 als Idle-E/A-Prozess.
sudo ionice -c 2 -n 0 bash
führt »bash« als Best-Effort-Programm mit höchster Priorität aus.
sudo ionice -p 89 91
gibt die Klasse und Priorität der Prozesse mit den PIDs 89 und 91 aus.