このトピックでは、iostatおよびiotopツールを使用してI/O負荷をチェックする方法について説明します。
ディスクI/Oロードの確認
iostatを使用してディスクI/O負荷を確認
iostatコマンドは、LinuxオペレーティングシステムのI/Oパフォーマンスを监视するために使用します。 システムの観点からディスクI/O負荷を確認するためのレポートを生成します。
次のコマンドを実行してiostatをインストールします。
yum install sysstat
次のコマンドを実行して、I/Oロードを確認します。
iostat -d -k 3 5
説明-d: デバイス (ディスク) の利用率レポートを表示します。
-k: 単位としてKB単位で統計を表示します。
3: データ表示は3秒ごとに更新されます。
5: 5つのレポートを表示します。
出力は以下のように表示されます。
表示パラメータは、以下のように説明される。 詳細については、「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負荷をチェックするために使用できます。
次のコマンドを実行してiotopをインストールします。
yum install iotop
次のコマンドを実行して、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ファイルシステムにデータを繰り返し書き込むと、ジャーナルサイズは継続的に増加します。 この問題は、ジャーナルが最大サイズに達すると発生します。
解決策
Linux Elastic Compute Service (ECS) インスタンスに接続します。
詳細については、「接続方法の概要」をご参照ください。
次のコマンドを実行して、対応するパーティションのジャーナルサイズを確認します。
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
次のコマンドを実行して、ジャーナルサイズを変更します。
mke2fs -J size=400 /dev/xvda1
説明必要に応じてサイズを変更し、/dev/xvda1を実際のパーティションに置き換えます。
I/Oパフォーマンスの最適化: 4KアライメントによるI/Oパフォーマンスの向上
4Kアライメントとは、4Kセクタ定義に準拠したハードディスクをフォーマットし、4Kセクタ規則に従ってデータを書き込むことを指します。 4Kアライメントにより、クラスタをセクタに対応させ、ディスクの読み書き効率を確保してI/Oパフォーマンスを向上させることができます。
このセクションでは、次のスクリプトを使用してディスクをフォーマットし、4Kアライメントを自動的に設定する方法について説明します。
このスクリプトを実行すると、すべてのデータディスクが自動的にフォーマットされます。 新しく購入したデータディスクでない場合は、ディスク上のデータがバックアップされていることを確認してください。 詳細については、「ディスクのスナップショットの作成」をご参照ください。
rootユーザーを使用してLinux ECSインスタンスに接続します。
詳細については、「接続方法の概要」をご参照ください。
auto_fdisk.zipパッケージをダウンロードして抽出し、抽出したスクリプトをターゲットサーバーにアップロードします。
次のコマンドを順番に実行して、スクリプトに実行権限を追加し、スクリプトを実行します。
chmod +x ./auto_fdisk.sh ./auto_fdisk.sh