詳細iostatコマンド
はじめにiostatの1
iostatコマンドは、Linuxシステム上で最も基本的なツール、その完全と呼ばれるI / Oパフォーマンスを表示するにはI / O統計を。iostatのは、CPUの使用状況の統計をすることができ、ディスクアクティビティを計測することができます。
iostatコマンド経由のsysstatパッケージをインストールすることができ属します。
yum install sysstat
データのiostatのソースは、Linuxオペレーティングシステムの/ proc / diskstatsです。
# cat /proc/diskstats
8 0 sda 239219 1806 37281259 2513275 904326 88832 50268824 26816609 0 4753060 29329105
8 1 sda1 338 0 53241 6959 154 0 5496 3724 0 6337 10683
8 2 sda2 238695 1797 37226458 2504489 620322 88832 50263328 25266599 0 3297988 27770221
8 16 sdb 1009117 481 1011773 127319 0 0 0 0 0 126604 126604
8 17 sdb1 1008792 480 1010929 127078 0 0 0 0 0 126363 126363
253 0 dm-0 1005 0 8040 15137 30146 0 241168 2490230 0 30911 2505369
253 1 dm-1 192791 0 35500457 2376087 359162 0 44095600 22949466 0 2312433 25325563
253 2 dm-2 47132 0 1717329 183565 496207 0 5926560 7348763 0 2517753 7532688
マスタデバイス番号、デバイス番号、デバイス名:procfsの最初の3つのフィールドで、ことに注意してください。
開始から4番目のフィールドは、デバイスの関連する統計を紹介します:
- rd_ios:読み取り操作の回数
- rd_merges:マージ読み出し動作の数。隣接する二つのデータブロックを読み出すための操作を読み取る場合、それを1つに組み合わせることができます。
- rd_sectors:セクタ数が読んで
- rd_ticks:読み取り操作は時間(ミリ秒)を消費します。各読み出し動作は、キュー内の待機時間を含め、これまでに()end_that_request_lastし、)(__make_requestから計時されます。
- wr_ios:書き込み回数
- wr_merges:マージ操作の数を書きます
- wr_sectors:セクタ数が書き込ま
- wr_ticks:書き込み操作は、時間(ミリ秒)を消費します
- in_flight:現在、未処理のI / O回数。値I / Oキューに要求プラス1すると、I / O 1マイナスこの値の終わりに。ときキューにI / O要求ではなく、ハードディスク装置に提出:注意してください。
- io_ticks:天然時のI / Oを処理するための装置(ウォールクロック時間)
- time_in_queue:重量値フィールド#10(io_ticks)の
iostatのは、次のような欠点があります。
- 出力iostatのほとんどは、時間の期間の平均値であり、状況のピークを反映することは困難です
- 唯一の全体的な状況分析報告システムのiostatが、プロセスのない詳細な分析。
- iostatのではない別の統計IO情報の処理が、インデックスを含むIOとIO待ち時間の連結統計の処理時間とそのためには、非常に正確な測定ディスクのパフォーマンスを含め、待つことはできません。
2コマンドとパラメータのエントリ
2.1コマンドの形式
iostat[参数][时间][次数]
例えば、-Xのiostat - -d 3 1 k個:KBに1Sデータをすべて取得、表示装置3は、ディスクの使用状況の詳細が表示されます。
2.2パラメータ説明
- -x詳細を表示
- -Cは、CPU使用率を表示し、-dオプションは相互に排他的です
- -dは、ディスク使用量を表示し、-Cオプションは相互に排他的です
- KBディスプレイで-k
- M -mに表示部
- -N表示ディスクアレイ(LVM)情報
- NFSの使用状況を表示する-n
- 【ディスク】ディスプレイケースディスクとパーティションを-p
- -t端末表示とCPU
- -Vバージョン情報を表示
3つの出力項目説明
次のように使用iostatの後、パネルの結果は以下のとおりです。
avg-cpu: %user %nice %system %iowait %steal %idle
1.44 0.00 0.39 0.00 0.00 98.17
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.37 0.47 30.30 3561197 229837730
dm-0 0.44 0.33 29.97 2518272 227313194
dm-1 0.12 0.13 0.33 1013276 2520308
dm-2 0.00 0.00 0.00 502 2068
3.1 CPUのプロパティ
パネルiostatの結果平均-CPUは、 CPU使用率システムについて説明します。
- %ユーザー:CPU時間の割合ユーザモード。
- %ニース:CPU時間の割合NICE値を持つユーザーモード。
- %システム:CPU時間の割合システムモード。
- %iowaitの:入出力完了率のためにCPUを待ちます。
- %盗む:別の仮想プロセッサを維持するためのプログラムの管理は、仮想CPUが無意識時間の割合を待ちます。
- %アイドル:CPUのアイドル時間の割合。
3.2ディスクのプロパティ
結果IOSTATデバイス記述パネルは、システムのディスク使用率です。
- TPS:第二伝動装置当たりの回数(デバイスに対して発行された秒当たりの転送数を示します。)。「最初の送信は」「1つのI / O要求」を意味します。論理リクエストを複数に結合されてもよい「1つのI / O要求を発行します。」「最初の送信」要求されたサイズは不明です。
- kB_read / S:デバイス(発現ドライブ)毎秒から読み出されたデータの量。
- kB_wrtn /秒:第2のデバイスにデータの量(駆動が発現)が書き込ま。
- kB_read:読み取られたデータの総量。
- kB_wrtn:データ書き込み数の合計量。
例4
4.1ディスクの詳細を見ます
コマンド:
iostat -d -x -k 1 1
出力:
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.03 0.16 0.01 0.36 0.47 30.30 165.95 0.02 55.32 9.22 56.77 13.56 0.50
dm-0 0.00 0.00 0.01 0.44 0.33 29.97 136.71 0.02 54.07 12.12 54.68 11.28 0.50
dm-1 0.00 0.00 0.03 0.08 0.13 0.33 8.00 0.12 1015.22 5.91 1420.78 0.41 0.00
dm-2 0.00 0.00 0.00 0.00 0.00 0.00 48.96 0.00 1.27 0.37 9.80 1.27 0.00
結果はそれを示しています。
- rrqm / S:組み合わせの数は、第2の動作を読み取り、隣接する二つのデータブロックを読み出すための操作を読めば、効率を改善するために、1つにまとめてもよいです。複合動作は、通常、I / Oスケジューラ(とも呼ばれるエレベーター)責任があります。
- wrqm / S:合成秒あたりの書き込み回数
- R / S:秒当たりの読み取り操作の数
- W /秒:毎秒書き込み回数
- RKB / S:毎秒読み取るバイト数(KB)
- WKB / S:秒当たりに書き込まれたバイト数(KB)
- RKB / S:読み取り値Kは、秒あたりのバイト数、各セクタサイズの半分rsect / sは、512バイトである(計算します)
- WKB / sは:秒あたりのKバイトを書き込み、ハーフwsect /秒(計算するために必要)
- avgrq-SZ:IO、すなわち、すべての要求の平均サイズ、セクタあたりのセクタの平均数(512バイト)
- avgqu-SZ:未処理のIO要求の平均数、すなわち要求キューの長さ平均感
- 待つ:キューで待機している時間を含む各IOのために必要な平均時間を、この要求のディスク制御装置の効果的な治療時間を含みます
- r_await:必読あたりの平均稼働時間は、ハードディスク装置だけではなく、カーネルキュー内の時間を含めて、動作時間をお読みください。
- w_wait:それぞれが、平均時間が必要なキューで待機している時間を含むハードディスク装置の書き込み動作時間、だけでなく、操作を記述します。
- svctm:表面は、待機時間を含めない、各IO要求のための時間を提供しているが、実際には、このインジケータは放棄されています。実際には、任意の項目なしでIOSTATツールは、各時間平均IO時間ハードディスク装置の出力を表します。
- %使用率:デバイスは、I / Oの数に関係なく、時間の比(すなわち、非アイドル)I / Oを有していることを示しているが、何ら考慮されていません。
その他4.2
- iostatの1 3:1秒ごとに表示を更新し、ディスプレイ3にします
- -d sda1をiostatの:ディスク情報を表示します
- iostatの-t:TTYと表示情報CPU
- iostatの-m:Mのすべての情報単位を表示します
- ビューTPSとスループット情報:iostatのは、-k 1 1 -d
- iostatの-d -x -k 1 1:表示容量使用率(%utilの)、応答時間(のawait)
- -c 1 3のiostat:ビューCPUの状態、表示を更新するには1秒ごと、およびディスプレイ3
5つの洞察
5.1無avgqu
IO要求キューの長さが、ビジータスク処理システムディスクを反映し、値が大きいほど、IOは、より多くの保留中の要求のキューを表します。
平均キュー長を計算します。
私たちは、次のシナリオを検討している場合250 IO要求に同時に、後続の要求がない新しい到着。この場合、各要求処理時間は、すべてのIO平均待ち時間4msのです。
平均等待时间 = 单个请求处理时间*(1+2+3+4...+(请求总数-1))/请求总数
この例では、平均待ち時間はその後、すべてのIO 250 * 500 =の125000msのために費やされた合計時間、この時分割1000msで、取得125、または平均キュー長500ミリ秒です。
この値は、直感的に沿ったもので、明らかです。キュー長が0である、ことラインIOの前面にランク付けされ、キューの第2の長さは、キュー長がキュー長である、最後の249 2であることをIO 1、IO 3考えられます。
5.2は待っています
単一Iの時間を待つ/ Oは、消費、処理装置は、ハードディスクI / O時間とキューのカーネルで時間を待っているI / O要求が含まれています。
await = IO 平均处理时间 + IO在队列的平均等待时间
通常の状況下でキュー待機時間はごくわずかです。
await = ((所有读IO的时间)+(所有写IO的时间))/((读请求的个数) + (写请求的个数))
この値は、それが正常と考えどのように大きな、ありますか?
SSDの場合は、ミリ秒の範囲1.xのに0.0xミリ秒から、特定の製品マニュアルを参照してください。
機械的なハードディスクの場合は、一般的に1万rpmの機械的なハードディスクを言えば、時間、回転待ち時間、伝送時間を求めるなど、8.38ミリ秒、です。
誤解は、人々は、多くの場合、任意に考えるということです待っについて、比較的高い値を待って、実際には、ハード・ディスク・デバイスのパフォーマンスを反映していない値を待って、貧弱なディスクパフォーマンスを考えられています。
私たちは、IOモデルの2種類を考慮してください。
- 250同時にIO要求キューに入り、
- 250 IO要求は、次のIOを開始するために、完了すべきIO次々に、順次開始しました
最初のケースは500ミリ秒まで待つ、後者の場合は4msのを待っていますが、ディスクはすべて同じ。
実際には、I / Oモードがランダムである場合シーンは、通常待つかどうかを判断するためにアプリケーションに応じて、I / O負荷が長いその後、相応に推定することがあまりにも多くのを待って、求めて、頭の周りを実行するためにつながる、比較的高いです。 I / Oモードがシーケンシャルライト、単一のI / O負荷を生成するプロセスである場合、シーク時間と回転遅延は無視でき、主な考慮事項送信時間、待機に対応し、1ミリ秒よりも少なく、小さくなければなりません。
ディスクアレイ、そこにハードウェアのキャッシュは、であっても完成発注に至るまでの操作を書き込み、そのサービス時間の書き込み動作が大幅に加速し、ディスクアレイの書き込み操作は、1つのまたは2つのミリ秒以内にされていない場合でも、遅いので、それを読んで必ずしも、キャッシュ内のデータはないが、まだ単一のディスクとのデータの物理的なハードディスクの読み出し速度はほぼ単一の小さなブロックを読む必要があります。
5.3%役に立ちます
そのデバイス使用率%は、I / Oの数に関係なく、I / O(すなわち、非アイドル)時間比率であるが、何ら考慮されていません。
多くの初心者は、100%に等しいハードディスク容量UTIL%がトップを言って見て、これは間違っています。
現代のハードディスク装置は、I / O要求の並列処理能力を複数有しているので、さらに100%utilの%は、デバイスが飽和し、簡単な例を与えていないことを意味します。
- 単一のハードディスクIを処理/ Oは、I / O要求を処理する能力を持つ、10を0.1秒を要しました。
- 10 I / O要求は、%utilの100%まで1秒までのサンプリング期間のすべてを完了するために、1秒の順番を提出したとき。
- 10 I / O要求した場合、その後%のutilのでのみ10%、1秒のサンプリング期間で完了される使い捨ての0.1秒を提出しました。
目に見える、%が100%までUTIL、ハードディスクはまだも可能であっても飽和状態に達していなかった多くのI / O要求を処理するためのエネルギーを持っています。iostatのは、ハードディスク装置の飽和度を測定することができません何の指標はありませんか?残念ながら、ありません。