すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Linux I/Oロードをチェックする方法は?

最終更新日:Dec 13, 2024

このトピックでは、iostatおよびiotopツールを使用してI/O負荷をチェックする方法について説明します。

ディスクI/Oロードの確認

iostatを使用してディスクI/O負荷を確認

iostatコマンドは、LinuxオペレーティングシステムのI/Oパフォーマンスを监视するために使用します。 システムの観点からディスクI/O負荷を確認するためのレポートを生成します。

  1. 次のコマンドを実行してiostatをインストールします。

    yum install sysstat
  2. 次のコマンドを実行して、I/Oロードを確認します。

    iostat -d -k 3 5
    説明
    • -d: デバイス (ディスク) の利用率レポートを表示します。

    • -k: 単位としてKB単位で統計を表示します。

    • 3: データ表示は3秒ごとに更新されます。

    • 5: 5つのレポートを表示します。

    出力は以下のように表示されます。

    IO负载

    表示パラメータは、以下のように説明される。 詳細については、「iostat (1) - Linux man page」をご参照ください。

    • デバイス: ディスク名。

    • tps: 1秒あたりに送信されたI/Oリクエストの数。

    • Blk_read/s: 1秒あたりに読み取られるブロック数。

    • Blk_wrtn/s: 1秒あたりに書き込まれるブロック数。

    • Blk_read: 読み取られたブロックの総数。

    • Blk_wrtn: 書き込まれたブロックの総数。

iotopを使用してディスクI/Oロードを確認

iotopはLinuxコマンドです。 これは、ディスクI/Oの使用状況を監視するためのトップライクなユーティリティです。 プロセスの観点からディスクI/O負荷をチェックするために使用できます。

  1. 次のコマンドを実行してiotopをインストールします。

    yum install iotop
  2. 次のコマンドを実行して、I/Oロードを確認します。

    iotop -k -n 5 -d 3
    説明
    • -b: ログするレコード。

    • -k: 単位としてKBで表示します。

    • -n: 終了するまでの反復回数を示します。

    • -d: 反復間の遅延を示します。

    出力は以下のように表示されます。

    表示パラメータは、以下のように説明される。 詳細については、iotop -hクエリを実行してください。

    • DISK READ: プロセスの現在の読み取り速度を表示します。

    • DISK WRITE: プロセスの現在の書き込み速度を表示します。

    • SWAPIN: ディスクのスワップ使用率を表示します。

    • IO: ディスクとスワップを含むプロセスの使用率を表示します。

kjournaldプロセスは多くのI/Oリソースを占有します。

問題の説明

iotopを使用して、kjournaldプロセスが大量のI /Oリソースを占有する問題のトラブルシューティングと分析を行います。

原因

この問題は通常、. ext3設定が小さすぎるファイルシステム。

kjournaldプロセスは、ext3ファイルシステムのコアプロセスであり、I/Oデータ操作の処理を担当します。 ディスクの読み書き活動中にCPUとメモリのリソースを消費します。 ext3ファイルシステムにデータを繰り返し書き込むと、ジャーナルサイズは継続的に増加します。 この問題は、ジャーナルが最大サイズに達すると発生します。

解決策

  1. Linux Elastic Compute Service (ECS) インスタンスに接続します。

    詳細については、「接続方法の概要」をご参照ください。

  2. 次のコマンドを実行して、対応するパーティションのジャーナルサイズを確認します。

    dumpe2fs /dev/xvda1 | grep Journal
    説明

    /dev/xvda1を実際のパーティションに置き換えます。

    次のように表示され、/dev/xvda1パーティションのジャーナルサイズが128Mであることを示します。

    dumpe2fs 1.42.9 (28-Dec-2013)
    Journal inode: 8
    Journal backup: inode blocks
    Journal features: journal_incompat_revoke
    Journal size: 128M
    Journal length: 32768
    Journal sequence: 0x00010ffb
    Journal start: 10953
  3. 次のコマンドを実行して、ジャーナルサイズを変更します。

    mke2fs -J size=400 /dev/xvda1 
    説明

    必要に応じてサイズを変更し、/dev/xvda1を実際のパーティションに置き換えます。

I/Oパフォーマンスの最適化: 4KアライメントによるI/Oパフォーマンスの向上

4Kアライメントとは、4Kセクタ定義に準拠したハードディスクをフォーマットし、4Kセクタ規則に従ってデータを書き込むことを指します。 4Kアライメントにより、クラスタをセクタに対応させ、ディスクの読み書き効率を確保してI/Oパフォーマンスを向上させることができます。

このセクションでは、次のスクリプトを使用してディスクをフォーマットし、4Kアライメントを自動的に設定する方法について説明します。

警告

このスクリプトを実行すると、すべてのデータディスクが自動的にフォーマットされます。 新しく購入したデータディスクでない場合は、ディスク上のデータがバックアップされていることを確認してください。 詳細については、「ディスクのスナップショットの作成」をご参照ください。

  1. rootユーザーを使用してLinux ECSインスタンスに接続します。

    詳細については、「接続方法の概要」をご参照ください。

  2. auto_fdisk.zipパッケージをダウンロードして抽出し、抽出したスクリプトをターゲットサーバーにアップロードします。

  3. 次のコマンドを順番に実行して、スクリプトに実行権限を追加し、スクリプトを実行します。

    chmod +x ./auto_fdisk.sh
    ./auto_fdisk.sh