Zum Inhalt springen

ionice

Aus Foxwiki
Die 5 zuletzt angesehenen Seiten:  cfdisk » Scanner » Convmv » Akronym » ionice

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