Zum Inhalt springen

Ionice: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „line>“ durch „line copy>“
 
(20 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. Falls keine Argumente oder nur -p angegeben ist, fragt ionice die aktuelle E/A-Scheduling-Klasse und -Priorität dieses Prozesses ab.
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.
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 »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
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. Diese Scheduling-Klasse akzeptiert kein Prioritätsargument. Derzeit ist die Vergabe dieser Scheduling-Klasse einem gewöhnlichen
* 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. Diese Klasse akzeptiert die Prioritäts-Argumente 0-7, wobei die niedrigere Zahl eine höhere
Dies ist die effektive Scheduling-Klasse für jeden Prozess, der keine spezifische E/A-Priorität angefordert hat
Priorität ausdrückt. Programme, die mit der gleichen Best-Effort-Priorität laufen, werden im Rundlauf-Verfahren bedient.
* 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,
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. 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.
* 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
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 »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
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 »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
* Deshalb sollte die Realtime-Klasse mit gewisser Vorsicht verwendet werden, weil sie andere Prozesse regelrecht ''aushungern'' kann
Prozess in jedem Scheduling-Zeitfenster erhält. Diese Scheduling-Klasse ist für einen gewöhnlichen Benutzer ohne Administratorrechte verboten.
* 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. »0« für keine, »1« für Realtime, »2« für Best-Effort, »3« für Idle.
| -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
| -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. 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
| -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
|}
|}


=== Parameter ===
=== Argumente ===
=== Umgebungsvariablen ===
=== Umgebungsvariablen ===
=== Exit-Status ===
=== Exit-Status ===


== Anwendung ==
== Anwendung ==
<syntaxhighlight lang="bash" highlight="1" line>
; Prozess auf Idle-E/A-Prozess setzen
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo ionice -c 3 -p 89
</syntaxhighlight>
 
; Prozess als Best-Effort (höchste Priorität) ausführen
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo ionice -c 2 -n 0 bash
</syntaxhighlight>


; Klasse und Priorität von Prozessen ausgeben
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo ionice -p 89 91
</syntaxhighlight>
</syntaxhighlight>
=== Problembehebung ===
 
== Konfiguration ==
== Konfiguration ==
=== Dateien ===
=== Dateien ===
Zeile 78: Zeile 100:
== Anhang ==
== Anhang ==
=== Siehe auch ===
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
==== Dokumentation ====
=== Dokumentation ===


===== Man-Page =====
; Man-Page
# IONICE(1) Dienstprogramme für Benutzer
# IONICE(1) Dienstprogramme für Benutzer


===== Info-Pages =====
;Info-Page
==== Links ====
=== Links ===
===== Projekt =====
==== Projekt ====
===== Weblinks =====
==== Weblinks ====


{{DEFAULTSORT:new}}
{{DEFAULTSORT:ionice}}
{{DISPLAYTITLE:new}}
{{DISPLAYTITLE:ionice}}


[[Kategorie:new]]
[[Kategorie:Linux/Prozess/Befehl]]
 
</noinclude>
= 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.
 
[[Kategorie:Linux/Prozesse]]
[[Kategorie:util-linux]]
[[Kategorie:util-linux]]
[[Kategorie:Linux/Befehl]]
[[Kategorie:Linux/Befehl]]
</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
  • 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

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
  1. IONICE(1) Dienstprogramme für Benutzer
Info-Page

Links

Projekt

Weblinks