iotopでディスクI/Oを監視する方法

当ページのリンクには広告が含まれています。

## はじめに
サーバーが妙に重い、ロードアベレージは高いがプロセッサは余裕がある、`top`で見ても明らかな食い手がいない——こうした状況の多くはディスクI/Oがボトルネックになっています。`iotop`はその名の通り「top のI/O版」で、プロセスごとの読み書き速度をリアルタイムに可視化できる必須ツールです。

iotopはCAP_NET_ADMINとカーネルのtaskstats機能を必要とするため、通常は`sudo`での実行が前提です。ログ蓄積目的でなく原因切り分けに使うのが定石で、加えて`iostat`や`pidstat -d`と組み合わせると、デバイス単位/プロセス単位の両方向から問題を捉えられます。

本記事では、iotopの基本操作と典型的なI/O障害調査のフローを解説します。

## 症状・背景
– システムがロードアベレージ高騰中だがプロセッサ使用率は低い
– ディスクのbusyランプが常時点灯しているような重さを感じる
– バックアップやログ書き出しが他プロセスを遅らせている
– どのプロセスがどれだけI/Oを発生させているか可視化したい

[図解画像をここに表示]

## 手順・設定方法
### ステップ1: iotopをインストールする
多くのディストリビューションでデフォルトでは入っていません。

“`bash
# Debian/Ubuntu
sudo apt install -y iotop

# RHEL/CentOS/AlmaLinux
sudo dnf install -y iotop

# バージョン確認
iotop –version

# 起動(rootまたはsudo必須)
sudo iotop
“`

### ステップ2: 実行中のI/Oを観察する
基本的な見方を押さえます。

“`bash
# 実際にI/Oが発生しているプロセスのみ表示
sudo iotop -o

# 累計I/O表示(差分ではなく合計)
sudo iotop -a

# バッチモード(ログ取得用)
sudo iotop -b -n 5 -d 2 -o > iotop.log

# ユーザー指定で監視
sudo iotop -u www-data
“`

iotop実行中のキー操作:
– `o`: アクティブプロセスのみ表示の切替
– `a`: 累計/瞬時の切替
– `r`: 表示順を逆転
– `q`: 終了

### ステップ3: iostatでデバイス単位の状況を見る
プロセス側と並行してデバイス側も確認します。

“`bash
# sysstatパッケージをインストール
sudo apt install -y sysstat # またはdnf install sysstat

# CPUとデバイスI/Oを2秒ごと
iostat -xz 2

# デバイス指定(sda)で詳細統計
iostat -dx sda 1

# %util が80%超ならデバイスがボトルネック
iostat -dx 1 5 | grep -E “Device|sda”
“`

### ステップ4: pidstatでプロセス別の継続観渫
iotopより安定して履歴を取れます。

“`bash
# プロセス別のディスクI/Oを1秒ごとに表示
pidstat -d 1

# 全プロセスを表示し、10秒間記録
pidstat -d 1 10

# 特定PIDだけ追跡
pidstat -d -p $(pgrep -f mysqld) 1

# 出力をCSV風にして後で集計
pidstat -d 1 30 | awk ‘/Average:/{print $4,$5,$7,$NF}’
“`

## 注意事項
– iotopは特権が必要、`/proc/sys/kernel/task_delayacct=1`が必要な環境もある
– バックアップやrsyncが上位に来るのは正常、業務時間外への移動を検討
– swapによるI/Oも計上されるため、メモリ不足が真因のケースもある
– SSDでは`%util`が高くても十分な性能を出していることがある(参考値として見る)

## まとめ
1. **iotop -o**: アクティブプロセスのみ表示で見やすく
2. **iostat -xz**: デバイス単位の%utilで物理的な限界を判断
3. **pidstat -d**: ロギング向きで履歴調査に最適
4. **swap注意**: I/O高騰の真因がメモリ不足のケース有
5. **タイミング**: バックアップ系は業務外時間にシフト

関連記事:
– [iostatでディスクI/O統計を確認する方法](/articles/linux-iostat/)
– [Linuxのメモリ使用量を確認する方法](/articles/linux-memory-usage-free/)
– [topコマンドでプロセスを監視する方法](/articles/linux-top-command/)

▼ 実践ガイド

【2026年】ネット証券口座の選び方とおすすめ比較 →

用語の意味がわかったら、実際の口座選びのポイントもチェックしてみてください。

※本記事に掲載している情報は、中立的な立場からの情報提供を目的としたものです。掲載している商品・サービスの購入や利用を推奨・強制するものではありません。投資には価格変動リスクが伴い、元本割れが生じる可能性があります。過去の運用実績やシュミレーション結果は、将来の運用成果を保証するものではありません。また、情報の正確性・最新性には十分配慮しておりますが、 内容の完全性や将来の結果を保証するものではありません。最終的な投資判断は、読者ご自身の判断と責任において行っていただくようお願いいたします。本記事の情報を利用したことによって生じたいかなる損害についても、当サイトでは一切の責任を負いかねますので、あらかじめご了承ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

マネジ局長は、「お金の大辞典」全体を統括する監修者です。

編集者であるマネ辞くんが収集・整理した金融・投資・税制データについて、制度の前提条件やリスク、誤解が生じやすい点がないかをチェックし、「この情報をどう受け取るべきか」という判断軸を補足します。

特定の商品やサービスをすすめる役割ではなく、読者が冷静に考えるためのブレーキ役として設計されています。

お金の判断は急がず、理解してから選ぶ。
それがマネ辞局長の基本スタンスです。

目次