ディスクI/Oが逼迫し、I/O wait が高い時、
- iostat ではディスク全体の状態は分かる
- しかし「誰が」I/Oを出しているかは分からない
そんな時に使うのが iotop です。
本記事では、 iotopで本当に見るべきポイントと 犯人プロセスを誤認しないための使い方を 実務目線で解説します。
目次
結論:iotopは「継続的にI/Oを出すプロセス」を見る
iotop は瞬間値を見るツールではありません。
一定時間、上位に居座り続けるプロセスこそが 真の犯人です。
iotopとは何が分かるツールか
iotop は、 プロセス単位のディスクI/O量をリアルタイム表示します。
CPUの top と同じ感覚で、 「ディスク版 top」と考えると分かりやすいです。
事前準備:iotopのインストール
RHEL / CentOS / Rocky / Alma
yum install iotop
Ubuntu / Debian
apt install iotop
※ root 権限で実行します。
基本的な使い方(まずはこれ)
iotop
この状態で、 数十秒〜数分間 観察します。
まず確認すべき表示項目
- DISK READ
- DISK WRITE
- COMMAND
READ / WRITE が継続的に高いプロセス が最優先で疑う対象です。
犯人を見誤らないための重要操作
1. アクティブなプロセスだけ表示する
iotop -o
実際にI/Oを発生させているプロセスだけが表示されます。
2. 累積I/Oを見る
iotop -a
一時的なI/Oではなく、 長時間で大量I/Oを出しているプロセス を見つけるのに有効です。
3. バッチモード(記録・確認用)
iotop -b -o -n 10
瞬間的に画面を見られない場合や、 証跡として残す時に使います。
よくある「犯人プロセス」例
ログ関連
- rsyslogd
- java / php-fpm(大量ログ出力)
バックアップ・圧縮
- tar
- gzip
- rsync
データベース
- mysqld
- postgres
「犯人特定完了」と判断できる状態
以下を満たせば、 iotopでの特定は完了です。
- 同じプロセスが継続的に上位
- READ または WRITE が明確に高い
- 処理内容と負荷の因果関係が説明できる
次にやるべきアクション
犯人が分かったら、 次は 対処 です。
- ログ出力量の削減
- 処理時間帯の変更
- nice / ionice で優先度制御
- ディスク構成の見直し
iotopでやってはいけない誤解
- 一瞬だけ表示されたプロセスを犯人扱いする
- 数秒見ただけで判断する
- READ/WRITEを見ずにPIDだけ見る
まとめ
iotop は、 ディスクI/Oトラブル時の最重要ツールです。
正しく使えば、 「誰がサーバーを遅くしているのか」 を数字で説明できます。
本記事の使い方を押さえれば、 勘や経験に頼らず、再現性のある切り分けが可能になります。
あわせて読みたい


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


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


サーバー負荷は低いのにレスポンスが悪い時の見方
サーバー監視画面を見ると、 CPU使用率も低く、メモリも余裕がある。 それなのに、 画面表示が遅い APIの応答がワンテンポ遅れる SSHや管理画面の反応が悪い このような…
