ウェブサイト検索

Linux でディスク I/O パフォーマンスを監視するための 3 つの最適なツール


概要: このガイドでは、Linux サーバー上のディスク I/O アクティビティ (パフォーマンス) を監視およびデバッグするための最適なツールについて説明します。

Linux サーバー上で監視すべき重要なパフォーマンス メトリックは、ディスク I/O (入出力) アクティビティです。これは、Linux サーバーのいくつかの側面、特に、ファイルやデータのディスクへの保存またはディスクからの取得の速度 (特に、データベースサーバー上)。これは、アプリケーションやサービスのパフォーマンスに波及効果をもたらします。

1. iostat – デバイスの入出力統計を表示します。

iosat は、sysstat パッケージに含まれる多くの端末ベースのシステム監視ユーティリティの 1 つであり、ブロック デバイスとパーティションの CPU 統計と I/O 統計をレポートするために設計された広く使用されているユーティリティです。

Linux サーバーで iostat を使用するには、Linux ディストリビューションに該当するコマンドを実行して、Linux システムに sysstat パッケージをインストールする必要があります。

sudo apt install sysstat          [On Debian, Ubuntu and Mint]
sudo yum install sysstat          [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a app-admin/sysstat  [On Gentoo Linux]
sudo apk add sysstat              [On Alpine Linux]
sudo pacman -S sysstat            [On Arch Linux]
sudo zypper install sysstat       [On OpenSUSE]    

単純なデバイス使用率レポートを表示するには、-d コマンド ライン オプションを指定して iostat を実行します。通常、最初のレポートはシステム起動以降の時間 (ブート時間) に関する統計を提供し、後続の各レポートは前回のレポート以降の時間に関するものです。

拡張統計レポートには -x を使用し、各レポートの時間を有効にするには -t フラグを使用します。さらに、レポート出力でアクティビティのないデバイスを削除したい場合は、-z フラグを追加します。

iostat -d -t 
OR
iostat -d -x -t 

統計を 1 秒あたりのブロック数ではなく 1 秒あたりのキロバイト数で表示するには、-k フラグを追加するか、-m フラグを使用して統計を 1 秒あたりのメガバイト数で表示します。

iostat -d -k
OR
iostat -d -m

iostat では、x 秒間隔で継続的なデバイス レポートを表示することもできます。たとえば、次のコマンドは 2 秒間隔でレポートを表示します。

iostat -d 2

前のコマンドに関連して、n 個のレポートを x 秒間隔で表示できます。次のコマンドは、2 秒間隔で 10 件のレポートを表示します。

iostat -d 2 10

あるいは、後で分析するためにレポートをファイルに保存することもできます。

iostat -d 2 10 > disk_io_report.txt &

レポート列の詳細については、iostat のマニュアル ページを参照してください。

man iostat

2. sar – Linux システムアクティビティの表示

sar は、sysstat パッケージに同梱されているもう 1 つの便利なユーティリティで、システム アクティビティ情報を収集、レポート、または保存することを目的としています。使用を開始する前に、次のように設定する必要があります。

まず、/etc/default/sysstat ファイル内のデータを収集できるようにします。

vi /etc/default/sysstat

次の行を探し、図に示すように値を「true」に変更します。

ENABLED="true"

次に、sysstat cron ジョブで定義されたデータ収集間隔を減らす必要があります。デフォルトでは、10 分ごとに設定されていますが、2 分ごとに下げることができます。

これは /etc/cron.d/sysstat ファイルで実行できます。

vi /etc/cron.d/sysstat

ファイルを保存して閉じます。

最後に、次の systemctl コマンドを使用して sysstat サービスを有効にして開始します。

systemctl enable --now sysstat.service
systemctl enable sysstat.service

次に、sar レポートの表示が開始されるまで 2 分待ちます。 sar コマンドと -b コマンド ライン オプションを使用して I/O および転送速度の統計をレポートし、-d を使用して各ブロックのアクティビティをレポートします。図に示すようにデバイス。

sar -d -b

3. iotop – Linux ディスク I/O 使用状況を監視する

設計の点ではトップ監視ツールと同様に、iotop はディスク I/O アクティビティと使用状況をプロセスごとに監視できるシンプルなユーティリティです。

次のようにして Linux サーバーにインストールできます (Linux ディストリビューションに応じて適切なコマンドを実行することを忘れないでください)。

sudo apt install iotop             [On Debian, Ubuntu and Mint]
sudo yum install iotop             [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-processs/iotop  [On Gentoo Linux]
sudo apk add iotop                 [On Alpine Linux]
sudo pacman -S iotop               [On Arch Linux]
sudo zypper install iotop          [On OpenSUSE]    

プロセスごとの I/O アクティビティを監視するには、次のように引数なしで iotop を実行します。デフォルトでは、反復間の遅延は1 秒です。これは、-d フラグを使用して変更できます。

iotop
OR
iotop -d 2

iotop はデフォルトでプロセスのすべてのスレッドを表示します。プロセスのみを表示するようにこの動作を変更するには、-P コマンド ライン オプションを使用します。

iotop -P

また、-a オプションを使用すると、帯域幅を表示するのではなく、蓄積された I/O を表示するように指示できます。このモードでは、iotop は、iotop が呼び出されてから実行された I/O プロセスの量を示します。

iotop -P -a

以上で終わりです!このガイドまたは上記のツールについてのご意見をお聞かせください。以下のフィードバック フォームからコメントを残してください。

このリストには含まれていないが、ここに掲載する価値があると思われるツールについてもお知らせください。