iostat コマンドを使用して Linux ディスクのパフォーマンスを理解する

WBOY
リリース: 2023-12-29 09:11:58
転載
1153 人が閲覧しました

######導入######

iostat は、主にシステム デバイスの IO 負荷を監視するために使用されます。iostat を初めて実行すると、システム起動以降のさまざまな統計情報が表示されます。その後 iostat を実行すると、最後にコマンドが実行されてからの統計情報が表示されます。統計回数や統計時間を指定することで、必要な統計情報を取得できます。 ######文法###### iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ デバイス [...] | ALL ] [ -p [ デバイス [,...] | ALL ] ] [間隔 [カウント ] ]

######はじめる###### リーリー

パラメータ -d は、デバイス (ディスク) の使用状況が表示されることを示します。 -k 単位としてブロックを使用する一部の列では、単位としてキロバイトが強制的に使用されます。2 は、データ表示が 2 秒ごとに更新されることを示します。

出力情報の意味

tps: デバイスの 1 秒あたりの転送数 (デバイスに発行された 1 秒あたりの転送数を示します)。 「1 回の転送」とは「1 回の I/O リクエスト」を意味します。複数の論理リクエストを「1 つの I/O リクエスト」に組み合わせることができます。 「1 回の転送」リクエストのサイズは不明です。

kB_read/s: デバイス (ドライブで表した) から読み取られた 1 秒あたりのデータ量;

kB_wrtn/s: 1 秒あたりにデバイス (ドライブで表現) に書き込まれるデータ量; kB_read: 読み取られたデータの総量; kB_wrtn: 書き込まれたデータの総量。これらの単位はキロバイトです。

上記の例では、ディスク sda とそのさまざまなパーティションの統計が表示されます。この時点で計算された合計ディスク TPS は 39.29 でした。各パーティションの TPS は次のとおりです。 (瞬間値であるため、合計TPSは各パーティションのTPSの合計と厳密には一致しません)

監視対象デバイスの名前を sda として指定します。このコマンドの出力は上記のコマンドとまったく同じです。


iostat -d sda 2


デフォルトですべてのハードディスクデバイスを監視しますが、ここでは sda のみを監視するように指定します。

-x パラメータ
iostat には、より一般的に使用されるオプション -x もあり、io に関連する拡張データを表示するために使用されます。

リーリー

出力情報の意味

rrqm/s: このデバイスに関連する読み取りリクエストが 1 秒あたりにマージされる数 (システム コールがデータを読み取る必要がある場合、VFS は各 FS にリクエストを送信します。FS が異なる読み取りリクエストを見つけた場合、データが同じブロックの場合、FS はこのリクエストを Merge にマージします); wrqm/s: このデバイスに関連する 1 秒あたりの書き込みリクエストの数がマージされます。 rsec/s: 1 秒あたりに読み取られるセクター数;

wsec/: 1 秒あたりに書き込まれるセクター数。

rKB/s: 1 秒あたりにデバイスに発行された読み取りリクエストの数;

wKB/s: 1 秒あたりにデバイスに発行された書き込みリクエストの数;

avgrq-sz の平均要求セクター サイズ
avgqu-sz は、リクエスト キューの平均長です。キューの長さは短ければ短いほど良いのは間違いありません。

await: 各IOリクエストの平均処理時間(単位はマイクロ秒、ミリ秒)。これは IO 応答時間として理解できます。通常、システムの IO 応答時間は 5ms 未満である必要があり、10ms を超える場合はさらに大きくなります。

この時間にはキュー時間とサービス時間が含まれます。つまり、通常の状況では、await の方が svctm よりも大きくなります。両者の差が小さいほどキュー時間は短くなります。逆に、差が大きいほどキューは長くなります。システムに障害が発生したことを示す時間。

svctm は、各デバイス I/O 操作の平均サービス時間 (ミリ秒単位) を表します。 svctm の値が await に非常に近い場合は、待機中の I/O がほとんどなく、ディスクのパフォーマンスが非常に良好であることを意味し、await の値が svctm の値よりもはるかに高い場合は、I/O が待機していることを意味します。 O キューの待機時間が長すぎると、システム上で実行されているアプリケーションの速度が低下します。
%util: 統計時間内のすべての処理 IO 時間を合計統計時間で割ったもの。たとえば、統計間隔が 1 秒で、デバイスが 0.8 秒間 IO を処理し、0.2 秒間アイドル状態である場合、デバイスの %util = 0.8/1 = 80% となるため、このパラメータはデバイスのビジー状態を示します。

。一般に、このパラメータが 100% の場合、デバイスがフル容量に近い状態で実行されていることを意味します (もちろん、複数のディスクがある場合は、%util が 100% であっても、同時実行機能によりディスク使用量がボトルネックに達しない可能性があります)ディスクの)。


-c パラメータ
iostat を使用して CPU ステータス値の一部を取得することもできます:


iostat -c 1 10
avg-cpu: %user %nice %sys %iowait %idle
1.98 0.00 0.35 11.45 86.22
avg-cpu: %user %nice %sys %iowait %idle
1.62 0.00 0.25 34.46 63.67

一般的な使用法

iostat -d -k 1 10 #TPS およびスループット情報の表示 (ディスクの読み取りおよび書き込み速度の単位は KB)
iostat -d -m 2 #TPS およびスループット情報を表示します (ディスクの読み取りおよび書き込み速度の単位は MB)
iostat -d -x -k 1 10 #デバイス使用率 (%util)、応答時間 (await) を表示します iostat -c 1 10 #CPU ステータスを表示します

ケース分析

リーリー 上記のとおり、1 秒あたりのディスク転送の平均数は約 400 で、ディスクは 1 秒あたり約 5MB を読み取り、約 1MB を書き込みます。

リーリー
ディスクの平均応答時間は 5 ミリ秒未満、ディスク使用量は 80 ミリ秒を超えていることがわかります。ディスクは正常に応答しますが、すでに非常にビジー状態になっています。

以上がiostat コマンドを使用して Linux ディスクのパフォーマンスを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:jb51.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート