LinuxでディスクのI/O状況を効率的にモニタリングする方法

Linuxシステムの運用・管理において、ディスクのI/O(Input/Output)状況を確認するスキルは不可欠です。特にサーバが遅いと感じた場合やデータベースのクエリが遅延している場合、ディスクI/Oがボトルネックである可能性が高いです。この記事では、ディスクのI/O状況をモニタリングするためのLinuxコマンドとその解説、さらに応用例を5つ以上紹介します。

目次

基本的なモニタリングコマンド

LinuxでディスクI/Oをモニタリングする基本的なコマンドは`iostat`です。これを使う前に、必要であればパッケージをインストールします。

sudo apt install sysstat  # Ubuntuの場合

`iostat`コマンドで基本的なディスクI/O情報を得ることができます。

iostat -dx 5  # 5秒ごとにI/O状況を表示

iostatの出力解説

このコマンドの出力では、`%util`が重要なパラメータです。この値が100%に近いと、ディスクが飽和状態にあることを示しています。

応用例

1. ディスクI/OとCPU使用率を同時にモニタリング

`iostat`と`mpstat`を組み合わせることで、ディスクI/OとCPU使用率を同時にモニタリングできます。

iostat -dx 5 & mpstat -P ALL 5  # 5秒ごとにディスクI/OとCPU使用率を表示

2. 特定のプロセスのI/Oをモニタリング

`pidstat`を使って、特定のプロセスID(以下、PID)のI/O状況を見ることができます。

pidstat -dl -p [PID]  # PIDを指定してI/Oをモニタリング

3. I/O待ちのプロセスを特定

`iotop`コマンドを使って、I/O待ちのプロセスを特定できます。

sudo iotop  # I/O待ちのプロセスをリアルタイムで表示

4. ファイルごとのI/Oをモニタリング

`inotify`を使用して、特定のファイルやディレクトリのI/O状況をモニタリングします。

inotifywait -m /path/to/file  # ファイルのI/O状況をモニタリング

5. 高度なディスクI/O分析

`blktrace`ツールを用いることで、更に詳細なディスクI/O分析が可能です。

sudo blktrace -d /dev/sda  # sdaデバイスのI/Oを詳細にトレース

まとめ

ディスクI/Oの状況を適切にモニタリングすることは、システムのパフォーマンス向上やトラブルシューティングに不可欠です。基本的な`iostat`コマンドから、応用的なモニタリングまで幅広く解説しました。これらの方法を組み合わせて、システムの健全性を維持しましょう。

created by Rinker
オライリージャパン
¥3,080 (2024/05/03 20:33:07時点 Amazon調べ-詳細)

コメント

コメントする

目次