Linux - ionice でディスクI/Oによる負荷を調整!
Updated:
ご存知のとおり、プロセス実行優先度の管理は nice コマンドで行います。
今回は、ディスク I/O 優先度の管理を行う ionice についての備忘録です。
0. 前提条件
- Debian GNU/Linux 8 Jessie での作業を想定。
1. 使用方法
$ ionice --help
ionice - sets or gets process io scheduling class and priority.
Usage:
ionice [OPTION] -p PID [PID...]
ionice [OPTION] COMMAND
Options:
-c, --class <class> scheduling class name or number
0: none, 1: realtime, 2: best-effort, 3: idle
-n, --classdata <num> scheduling class data
0-7 for realtime and best-effort classes
-p, --pid=PID view or modify already running process
-t, --ignore ignore failures
-V, --version output version information and exit
-h, --help display this help and exit
- スケジューリングクラス(
-c)について1(RealTime) … 最も優先度が高い。2(Best-Effort) …1(RealTime) と3(Idle) の間。3(Idle) … 最も優先度が低い。
- プライオリティ(
-n)について- スケジューリングクラス
1(RealTime) と2(Best-Effort) にのみ使用可能。 0〜7… 値が小さいほど優先度が高い。
- スケジューリングクラス
2. 使用例
以下は、コマンド cmd をディスク I/O 優先度を最高にして実行する例。
$ ionice -c 1 cmd
以下は、コマンド cmd をディスク I/O 優先度を最低にして実行する例。
$ ionice -c 3 cmd
以下は、コマンド cmd をディスク I/O 優先度をベストエフォート(優先度最低)にして実行する例。
$ ionice -c 2 -n 7 cmd
以下は、プロセス番号 1234 で実行中のプロセスのディスク I/O 優先度を確認する例。
$ ionice -p 1234
以下は、プロセス番号 1234 で実行中のプロセスのディスク I/O 優先度を最低に変更する例。
$ ionice -c 3 -p 1234
以下は、コマンド cmd をプロセス優先度を最低、ディスク I/O 優先度も最低にして実行する例。(マシンに最も負荷をかけない方法)
$ nice -n 19 ionice -c 3 cmd
非力なマシンで作業を行うことの多い当方にとっては、非常によく使用するコマンドです。
当然ながら、ディスク I/O の負荷が低く抑えられる代わりに処理に時間がかかります。
以上。
Comments