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