ウェブサイト検索

Iotop - Linux ディスク I/O アクティビティとプロセスごとの使用状況を監視する


Iotop は、top コマンドに似たオープンソースの無料ユーティリティで、Linux のディスク I/O 使用状況の詳細を監視し、既存の I/O のテーブルを出力する簡単な方法を提供します。システム上のプロセスまたはスレッドによる使用率。

Iotop ツールはPython プログラミングに基づいており、プロセスを監視および表示するにはカーネル アカウンティング機能が必要です。これは、 システム管理者にとって、 高いディスク I/O 読み取り/書き込みの原因となる可能性のある特定のプロセスを追跡するのに非常に便利なツールです。

Iotop の前提条件

  1. カーネル 2.6.20 以降
  2. Python 2.7以降

この記事では、Linux システムでプロセスごとに Linux デバイスの I/O (入出力) を監視および追跡するiotop プログラムをインストールする方法について説明します。

Iotop ディスク I/O 監視ツールを Linux にインストールする

iotop には最新のカーネル 2.6.20Python 2.7 が必要であると上ですでに述べたように、まず次のコマンドを使用して両方を更新しましょう。 。

-------------- On RHEL, CentOS and Fedora -------------- 
yum update     

-------------- On Fedora 22+ Releases -------------- 
dnf update

-------------- On Debian, Ubuntu and Linux Mint -------------- 
apt-get update

次に、次のコマンドを実行してカーネルPythonのバージョンを確認します。

# uname -r
python -V

重要: この記事の執筆時点では、CentOS/RHEL 5.x は古いバージョンの Python を使用しているため、iotop をインストールできません。ただし、iotop と同様の機能を実行する dstat プログラムを使用することはできます。

パッケージマネージャーを使用してiotopをインストールする

パッケージ マネージャーから iotop をインストールするには、次のリストから適切なコマンドを選択します。

-------------- On RHEL, CentOS and Fedora -------------- 
yum install iotop

-------------- On Fedora 22+ Releases -------------- 
dnf install iotop

-------------- On Debian, Ubuntu and Linux Mint -------------- 
apt-get install iotop

重要: デフォルトのリポジトリから iotop をインストールすると、古いバージョンが提供されます。 iotop の最新バージョンが必要な場合は、次の手順に従ってソースからコンパイルすることを検討してください。

ソースから iotop をインストールする

最新バージョンの iotop をインストールするには、公式プロジェクト ページにアクセスして最新のソース パッケージをダウンロードし、次の一連のコマンドを使用してソースからコンパイルします。

# wget http://guichaz.free.fr/iotop/files/iotop-0.6.tar.bz2
tar -xjvf iotop-0.6.tar.bz2
cd iotop-0.6/
./setup.py install

重要: ディレクトリ内で iotop を実行することもできます (./iotop.py を実行することによって)。インストーラー ./setup.py install コマンドを実行して、/usr/bin に iotop をインストールできます。

Linux で iotop を使用する方法

最も簡単な方法では、次のように引数なしで iotop を実行できます。

# iotop

実行中のプロセスのリストと、現在のディスク I/O 使用状況に関する情報を取得する必要があります。

各列の見出しは一目瞭然ですが、ここで考慮すべき重要な点が 2 つあります。

  1. IO「IO」 列には、各プロセスの合計 I/O (ディスクとスワップ) 使用量が表示されます。
  2. SWAPIN – 「SwapIn」列には、各プロセスのスワップ使用量が表示されます。

すべてのプロセスを監視するのではなく、実際に I/O を実行している現在のプロセスまたはスレッドを確認するには、-o または –only オプションを指定して iotop の使用を開始することをお勧めします。またはスレッド。

# iotop --only

Linux ディスク I/O アクティビティに関するアラートを取得する

cron ジョブ スケジューリング プログラムを使用して iotop を毎分実行し、検出された I/O アクティビティを追跡し、電子メール アドレスにアラートを送信できます。

# vi /etc/cron.d/iotop

そして、次の行をファイルに追加します。

[email 
* * * * * root iotop -botqqq --iter=3 >> /var/log/iotop

必要に応じて、要件に応じて上記のコマンドを微調整できます。

iotop プログラムの使用法とオプションの詳細については、次のコマンドを実行してマニュアル ページを確認してください。

# man iotop

いくつかの重要な iotop の使用法とキーボード ショートカット。

  1. 並べ替えを変更するには、または矢印キーを移動します。
  2. –version オプションを使用してバージョン番号を確認し、終了します。
  3. 使用法に関する情報を表示するには、-h オプションを使用します。
  4. 並べ替え順序を逆にするには、-r オプションを使用します。
  5. プロセスまたはスレッドを確認するには、-o オプションを使用します。
  6. -b オプションを使用して非対話モードをオンにし、I/O 使用量のログ記録を有効にします。
  7. -p PID を使用して、監視するすべてのプロセス/スレッドをリストします。
  8. -u USER オプションを使用して、監視するすべてのユーザーをリストします。
  9. プロセスのみをリストするには、-P オプションを使用します。通常、iotop はすべてのスレッドを表示します。
  10. 帯域幅ではなく蓄積された I/O を確認するには、-a オプションを使用します。

上記の iotop オプションはすべて非常に簡単です。インターフェイスは、Linux の top コマンドとほぼ同じように見え、機能します。

Iotop は、スワップ メモリの使用量が多い、または大量のディスク IO アクティビティを引き起こしている Linux プロセスを追跡するのに非常に便利です。

関連記事: