Linuxサーバーで負荷対策を行う際、
- nice を設定したのに効果がない
- ionice っていつ使うの?
- 結局どっちを使えばいいのか分からない
という悩みを持つ運用担当者は非常に多いです。
本記事では、 nice と ionice の役割の違いを明確にし、 どの場面でどちらを使うべきかを 実務レベルで迷わない形で解説します。
目次
結論:CPUを制御するのが nice、ディスクI/Oを制御するのが ionice
まず結論です。
| 項目 | nice | ionice |
|---|---|---|
| 制御対象 | CPU | ディスクI/O |
| 効果が出る場面 | CPU負荷が高い時 | I/O wait が高い時 |
| 効果がない場面 | I/O待ちが原因 | CPU処理が原因 |
ここを誤解していると、何を設定しても改善しません。
niceとは何か(CPU優先度制御)
nice は、 CPUをどれだけ使ってよいかの優先度を制御します。
CPUが取り合いになった時、 どのプロセスを先に実行するか を決める仕組みです。
niceの基本
- 値の範囲:-20 ~ 19
- 数値が小さいほど優先度が高い
- デフォルトは 0
設定例
nice -n 10 tar czf backup.tar.gz /data
→ CPUが空いている時だけ動かしたい処理に有効
ioniceとは何か(ディスクI/O優先度制御)
ionice は、 ディスクI/Oの優先度を制御します。
I/O wait が高い環境では、 nice はほぼ効果がありません。
ioniceのクラス
- idle(クラス3):完全な空き時間のみ
- best-effort(クラス2):通常制御
- realtime(クラス1):最優先(注意)
よく使う設定
ionice -c3 tar czf backup.tar.gz /data
→ 業務影響を最小限にしたバックアップに最適
niceが効かない典型パターン
以下の状態では、 nice をいくら下げても意味がありません。
- I/O wait が高い
- ディスク %util が高い
- プロセスがI/O待ちで止まっている
この場合、 CPUではなくディスクがボトルネックです。
ioniceを使うべき典型ケース
- バックアップ処理
- ログ圧縮(gzip / xz)
- rsync による大量コピー
- 一時的なバッチ処理
「急がないが重い処理」は、 基本的に ionice を使います。
niceを使うべき典型ケース
- CPUを多用する計算処理
- 画像・動画エンコード
- CPU集約型バッチ
I/OよりCPUが重い処理が対象です。
nice + ionice を併用する正解パターン
実務では、 両方を同時に使うのが正解な場面も多いです。
例:業務影響を極小化したバックアップ
nice -n 10 ionice -c3 tar czf backup.tar.gz /data
→ CPUもI/Oも「空いている時だけ使う」動きになります。
設定後に確認すべきポイント
CPU側
top
- CPU使用率が抑えられている
I/O側
iotop
- 対象プロセスが下位にいる
「正しく使い分けできている」と判断できる状態
- 業務トラフィックに影響が出ない
- I/O wait が上昇しない
- 処理は裏で確実に進んでいる
よくある誤解
- nice を下げれば何でも速くなる
- ionice は特殊用途
- CPUが低い=サーバー正常
ボトルネックに合わない制御は無意味です。
まとめ
nice と ionice は、 競合するものではなく、役割が違うツールです。
- CPUが原因 → nice
- ディスクI/Oが原因 → ionice
- 業務影響を抑えたい → 併用
本記事の使い分けを理解すれば、 「効かないチューニング」から卒業できます。
あわせて読みたい


I/O waitが高い時にやるべき切り分け手順
サーバーが遅い、レスポンスが悪いと感じて調査すると、 CPU使用率は低い メモリも余裕がある しかし I/O wait(wa)が高い という状態に遭遇することがあります。 本記…
あわせて読みたい


ディスクI/Oが逼迫する原因と対処(ログ・バックアップ・DB)
サーバーのレスポンスが悪化し、調査すると I/O wait が高い CPU使用率は低い メモリも余裕がある このような状態で多くの場合、 ディスクI/Oの逼迫が発生しています。 …
あわせて読みたい


iotopの正しい使い方(犯人プロセス特定編)
ディスクI/Oが逼迫し、I/O wait が高い時、 iostat ではディスク全体の状態は分かる しかし「誰が」I/Oを出しているかは分からない そんな時に使うのが iotop です。 本…
