GNU/Linux >> Linux の 問題 >  >> Linux

10CPUおよびI/O統計を報告するLinuxiostatコマンド

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
最初のセクションにはCPUレポートが含まれています

  • %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のコマンドラインツール

Linux
  1. Linux Catコマンド:使用法と例

  2. Linuxコマンド-概要と例

  3. Linuxコマンド:jobs、bg、およびfg

  1. Linux での mkdir および rmdir コマンドの例

  2. Linux での CPU I/O 待機の評価

  3. Linux のトップ コマンド:us、sy、ni、id、wa、hi、si、st (CPU 使用率) は?

  1. Linuxmpstatコマンド-プロセッサ関連の統計をレポートします

  2. LinuxコマンドラインからのI/Oレポート

  3. Linux での swapon および swapoff コマンドの例