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`コマンドから、応用的なモニタリングまで幅広く解説しました。これらの方法を組み合わせて、システムの健全性を維持しましょう。
コメント