理想未来ってなんやねん

娘可愛い。お父さん頑張る。

ionice -- I/Oスケジューリングクラスおよび優先度を設定/変更する

よく忘れるのでメモ。


ioniceは簡単に言うとniceのI/O版。
プログラムのI/Oスケジューリングクラスおよび優先度を取得/変更することができます。
マニュアルの日本語訳が無かったので適当に翻訳しました。

概要

ionice [-c] [-n] [-p] [COMMAND [ARG...]] 

説明

このプログラムは、プログラムのI/Oスケジューリングクラスおよび優先度を変更します。現時点でLinuxは3つのスケジューリングクラスをサポートします。

アイドル

プログラムがアイドルプライオリティで実行すると、他のプログラムがI/Oを求めていない時だけ利用します。
通常のシステム活動でのアイドルI/Oプロセスの影響はゼロであるべきです。
このスケジューリングクラスは優先度引数を取りません。

ベストエフォート

特定のI/O優先を求めていないどんなプロセスのためのデフォルトスケジューリングのクラスです。
プログラムはI/OプライオリティのためにCPU nice設定を引き継ぎます。

このクラスは0〜7の低い番号ほど高いプライオリティの優先度引数を取ります。
ベストエフォート型優先権で動くプログラム同士、ラウンドロビン型で提供されています。

リアルタイム

RTスケジューリングのクラスは先に実行されているかに関わらず、最初のディスクアクセスを与えられます。
RTのクラスは他のプロセスを飢えさせることができる為、注意して使用する必要があります。
ベストエフォートクラスのように、特定のプロセスがそれぞれのスケジューリングウィンドウの上で受けるどれくらい大きいタイムスライスかを意味する8つの優先度が定義されます。


引数なしもしくは-p(プロセスPID)のみ与えられた場合、ioniceはプロセスの現在のスケジューリングクラスと優先度を取得します。

オプション

  • -c
    • スケジューリングクラス。
      • 1:リアルタイム
      • 2:ベストエフォート
      • 3:アイドル
  • -n
    • 優先度。スケジューリングクラスがこの引数を受容する場合のみ。リアルタイムとベストエフォートは0〜7の値を受け取ります。
  • -p
    • 既に実行されている変更するプロセスのpid。もしこの引数が与えられなかった場合、ioniceは与えられたパラメータで、COMMAND引数に記載されたプログラムを実行します。

# ionice -c3 -p89

PID 89のプロセスをアイドルI/Oプロセスに設定します。

# ionice -c2 -n0 bash

ベストエフォート、高優先度でbashを実行します。

# ionice -p89

PID 89のクラスおよび優先度を返します。

ノート

I/Oスケジューリングの優先度とクラスは2.6.13よりCFQ I/Oスケジューラとともにサポートされました。

AUTHORS

Jens Axboe