
Iostatコマンドはデバイスがアクティブである時間を平均転送速度との関係で観察することにより、システムの入出力(I / O)デバイスの負荷を監視します。 iostatは、システム構成を変更して物理ディスク間の入出力のバランスを改善するために使用できるレポートを作成します。
Iostatはsysstatに含まれています パッケージ。 Iostatは、デフォルトでほとんどのLinuxディストリビューションにインストールされています。
お持ちでない場合は、最初にインストールする必要があります。
RedHat / CentOS/Fedoraの場合
$ yum install sysstat
Debian / Ubuntu /LinuxMintの場合
$ apt-get install sysstat
コマンドを引数なしで実行すると、システムが起動されてからの情報を含む詳細なレポートが生成されます。 。これを変更するために、2つのオプションのパラメーターを指定できます。
iostat [option] [interval] [count]
- 間隔 パラメータは、各レポート間の時間を秒単位で指定します
- カウント パラメータを使用すると、iostatが終了する前に生成されるレポートの数を指定できます。
これらの引数を使用してコマンドを初めて実行すると、最初のレポートにはシステムの起動以降の情報が含まれ、後続の各レポートには期間が含まれます。前回のレポートが生成されてから。
$ iostat 2 3
Linux 3.10.0-514.16.1.el7.x86_64 (centos-01) 05/23/2017 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.65 0.00 0.18 0.02 0.00 99.15
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 0.88 4.29 7.07 217829 358600
avg-cpu: %user %nice %system %iowait %steal %idle
1.01 0.00 0.50 0.00 0.00 98.49
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 0.50 0.00 2.01 0 4
avg-cpu: %user %nice %system %iowait %steal %idle
3.00 0.00 0.50 0.00 0.00 96.50
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 1.00 0.00 30.00 0 60
1。レポートと統計を取得する
デフォルトでは、オプションなしのiostatは、CPUとデバイスで構成される統計レポートを表示します。
$ iostat
出力:
Linux 3.10.0-514.16.1.el7.x86_64 (centos-01) 05/22/2017 _x86_64 (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.69 0.00 0.19 0.02 0.04 99.08
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 1.00 3.40 14.08 1552428 6423128
- %user: ユーザー(アプリケーション)レベルでの実行中に発生したCPU使用率の割合
- %nice: 優先度の高いユーザーレベルでの実行中に発生したCPU使用率の割合
- %system: システム(カーネル)レベルでの実行中に発生したCPU使用率の割合
- %iowait: システムが未処理のディスクI/O要求を持っていた1つまたは複数のCPUがアイドル状態だった時間の割合
- %steal: ハイパーバイザーが別の仮想プロセッサにサービスを提供している間に、仮想CPUが非自発的に待機するのに費やした時間の割合
- %idle: 1つまたは複数のCPUがアイドル状態で、システムに未処理のディスクI/O要求がなかった時間の割合
2番目のセクションにはデバイス使用率レポートが含まれています
- デバイス: / devにリストされているデバイス/パーティション名 ディレクトリ
- tps: デバイスに発行された1秒あたりの転送数。 tpsが高いということは、プロセッサがビジーであることを意味します
- Blk_read / s: デバイスから読み取られたデータの量を1秒あたりのブロック数(キロバイト、メガバイト)で表示します
- Blk_wrtn / s: 1秒あたりのブロック数(キロバイト、メガバイト)で表されるデバイスに書き込まれるデータの量
- Blk_read: 読み取られたブロックの総数を表示する
- Blk_wrtn: 書き込まれたブロックの総数を表示する
iostatは、次のファイルを使用してレポートを作成します。
-
/proc/stat
システム統計が含まれています。 -
/proc/uptime
システムの稼働時間が含まれます。 -
/proc/diskstats
ディスク統計が含まれています。 -
/sys
ブロックデバイスの統計が含まれています。 -
/proc/self/mountstats
ネットワークファイルシステムの統計が含まれています。 -
/dev/disk
永続的なデバイス名が含まれています。
2。詳細な統計情報を表示する
Iostatコマンドは、I/Oデバイスに使用率を報告します。オプション-x
を使用すると、診断の統計結果を詳細に拡張できます。 。
$ iostat -x
出力:
Linux 3.10.0-514.16.1.el7.x86_64 (centos-01) 05/23/2017 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.69 0.00 0.19 0.02 0.04 99.06
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.01 1.10 0.16 0.84 3.37 14.04 34.88 0.00 2.35 1.41 2.53 0.40 0.04
- avg-cpu: これはCPUブロック情報です
- デバイス: デバイスブロック情報です。良いデバイスを使用していることを確認する
- %util :ストレージデバイスの作業時間はどれくらいでしたか(忙しかった)。
- svctm :ビジー状態のときにI/Oサブシステムがリクエストに全体的に応答する速度を示します。実際には、システムの負荷が少ないほど、svctmは高くなります。
- 待つ :リクエストの処理速度を示します。単なる平均です。
- avgqu-sz :リクエストキューにあるリクエストの数。低=システムがロードされていないか、I / Oがシリアル化されており、基盤となるストレージを適切に利用できない。高=ソフトウェアスタックは、適切に基盤となるI/Oをロードするのに十分なスケーラブルです。
- avgrq-sz :平均的なリクエストサイズです。発生するワークロードの種類を示すことができます。
- wsec / s & rsec / s :セクターは1秒あたりに読み書きされます。 2048で割ると、1秒あたりメガバイトになります。
- r / s & w / s :1秒あたりの読み取りおよび書き込み要求。これらの数値はI/O容量の数値ですが、もちろん、基礎となるI / Oサブシステムが受ける圧力(キューサイズ!)に応じて、変動する可能性があります。
- rrqm / s & wrqm / s :ブロックレイヤーによってマージされたリクエストの数。
3。 CPU統計のみを表示する
-c
を使用して、CPUの統計情報とレポートを表示することができます。 オプション
$ iostat -c
出力:
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
12.93 0.08 2.40 3.35 0.00 81.24
4。デバイスレポートのみを表示する
-d
でのみデバイス使用状況のステータスを表示できます オプション。接続されている各デバイスの情報が一覧表示されます。
$ iostat -d
出力:
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 17.73 510.80 632.10 5127420 6345037
mmcblk0 0.03 0.63 0.00 6282 0
5。デバイスのみの拡張I/O統計を表示する
一方の側に拡張統計を表示でき、もう一方の側から拡張統計を表示できます。これは、オプション-xd
が設定されているデバイスに対してのみ拡張統計を表示できることを意味します。 。
$ iostat -xd
出力:
$ iostat -xd
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
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.48 25.33 8.43 7.81 417.06 540.42 117.88 1.18 72.83 35.98 112.62 6.18 10.03
mmcblk0 0.30 0.00 0.02 0.00 0.49 0.00 49.47 0.00 3.73 3.73 4.00 2.99 0.01
6。統計をキロバイトまたはメガバイトでキャプチャします
デフォルトでは、iostatはバイト単位でI/Oシステムを測定します。読みやすくするために、iostatを変換して、レポートをキロバイト単位またはメガバイト単位で表示することができます。
-k
を追加するだけです キロバイト単位でレポートを作成します。 $ iostat -k
出力:
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
12.54 0.08 2.37 3.41 0.00 81.61
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 16.18 345.76 504.55 5622164 8204113
mmcblk0 0.02 0.39 0.00 6282 0
-m
メガバイト単位でレポートを作成します。 $ iostat -m
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
12.54 0.08 2.37 3.41 0.00 81.61
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 16.18 0.34 0.49 5490 8012
mmcblk0 0.02 0.00 0.00 6 0
7。 CPUとデバイスの統計を遅延して表示する
vmstatと同じです。統計ツールとして、それを使用する最良の方法は遅延パラメーターを使用することです。遅れて、私たちはトレンドが何であるかを見ることができます。 iostatを遅延して実行するためのサンプルを次に示します。
iostatをキロバイト単位で実行し、2秒間隔で3回のレポートを実行します。
$ iostat -k 2 3
出力:
Linux 3.10.0-514.16.1.el7.x86_64 (centos-01) 05/23/2017 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.70 0.00 0.19 0.02 0.03 99.05
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 1.00 3.33 14.03 1561788 6572152
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 0.00 0.00 0.00 99.50
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 0.00 0.00 0.00 0 0
avg-cpu: %user %nice %system %iowait %steal %idle
3.52 0.00 0.50 0.00 0.00 95.98
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 1.51 0.00 12.06 0 24
2秒間隔と2回のレポートでCPUのみのレポートを表示するには、次のように入力します。
$ iostat -c 2 2
Linux 3.10.0-514.16.1.el7.x86_64 (centos-01) 05/23/2017 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.71 0.00 0.19 0.02 0.03 99.05
avg-cpu: %user %nice %system %iowait %steal %idle
1.50 0.00 0.00 0.00 0.00 98.50
sda6およびsda7デバイスが2秒間隔で2回のレポートのみをレポートするようにするには、次のコマンドを実行します。
$ iostat -d sda7 sda6 2 2
出力:
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda6 3.40 108.29 130.75 1928577 2328496
sda7 12.19 211.96 305.79 3774804 5445696
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda6 0.00 0.00 0.00 0 0
sda7 1.00 0.00 24.00 0 48
8。永続的なデバイス名の統計を表示する
/dev/sda
の代わりに name、オプション-j
を使用して永続的なデバイス名を出力します ID
を追加します キーワード(永続的な名前のタイプを指定します)。 $ iostat -j ID mmcbkl0 sda6 -x -m 2 2
出力:
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
14.33 0.10 2.48 3.26 0.00 79.83
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
ata-ST500LT012-1DG142_S3P4312X-part6
0.19 0.88 2.51 0.82 0.10 0.12 138.36 0.21 61.81 57.12 76.12 10.81 3.60
avg-cpu: %user %nice %system %iowait %steal %idle
19.40 0.00 1.25 0.63 0.00 78.72
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
ata-ST500LT012-1DG142_S3P4312X-part6
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
9。ブロックデバイスの統計情報を表示する
-p
を使用するだけです オプション $ iostat -p
出力:
Linux 4.4.0-78-generic (shinigami) 05/23/2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
14.93 0.10 2.51 3.19 0.00 79.28
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 15.82 297.18 474.87 5928512 9473117
sda1 0.00 0.11 0.00 2108 0
sda2 0.01 0.28 0.00 5679 1
sda3 0.00 0.10 0.00 2084 0
sda4 0.00 0.10 0.00 2092 0
sda5 0.09 0.77 45.62 15428 910068
sda6 3.26 102.76 117.09 2049957 2335908
sda7 12.09 192.75 306.99 3845120 6124136
sda8 0.12 0.20 5.16 3896 103004
mmcblk0 0.01 0.31 0.00 6282 0
mmcblk0p1 0.01 0.26 0.00 5242 0
$ iostat -p sdf 1 2
Linux 3.10.0-514.16.1.el7.x86_64 (centos7-srv) 05/23/2017 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
7.18 0.41 3.94 4.10 0.00 84.37
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sdf 0.47 3.54 0.00 4656 0
sdf1 0.09 0.70 0.00 920 0
sdf2 0.09 0.69 0.00 904 0
sdf3 0.09 0.69 0.00 904 0
sdf4 0.09 0.69 0.00 904 0
avg-cpu: %user %nice %system %iowait %steal %idle
6.00 1.00 2.00 0.00 0.00 91.00
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sdf 0.00 0.00 0.00 0 0
sdf1 0.00 0.00 0.00 0 0
sdf2 0.00 0.00 0.00 0 0
sdf3 0.00 0.00 0.00 0 0
sdf4 0.00 0.00 0.00 0 0
10。 lvm2統計情報を表示する
-N
を使用してLVM統計を表示することができます 。このコマンドは、任意のデバイスマッパーデバイスに登録されているデバイスマッパー名を表示します。 $ iostat -N

-z
を使用すると、サンプル期間中にアクティビティがなかったデバイスの出力を省略するようにiostatに指示できます。 オプション。
このツールの利点の1つは、root権限なしで実行できることです。 man iostat と入力して、iostatのマニュアルページを調べることで、さらに深く掘り下げることができます。 コンソールでiostatのマニュアルページを表示します。
関連項目:
- Sarコマンドを使用してLinuxのパフォーマンスを監視する方法
- LinuxでCPU使用率を確認するための14のコマンドラインツール