IOSTAT

Section: Linux User's Manual (1)
Updated: JULY 2018
Index Return to Main Contents
 

名前

iostat - 中央演算装置 (CPU) の統計と、 デバイスとパーティションの入出力の統計をレポートする。  

書式

iostat [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -s ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] [ --dec={ 0 | 1 | 2 } ] [ -j { ID | LABEL | PATH | UUID | ... } ] [ -o JSON ] [ [ -H ] -g group_name ] [ --human ] [ -p [ device [,...] | ALL ] ] [ device [...] | ALL ] [ interval [ count ] ]  

説明

iostat コマンドはシステムの入出力デバイス負荷をモニタリングするのに使う。 負荷として、平均転送レートに関連するデバイスがアクティブな時間を計測する。 iostat は、物理ディスク間の入出力負荷のバランスをよくするための システム設定の変更に使えるレポートを生成する。

iostat が生成する最初のレポートは、 -y オプション (この場合、最初のレポートを省略する) が指定されない限り、 システムがブートしてからの時間に関しての統計を提供する。 それに続くレポートは、その前のレポートからの時間をカバーしている。 iostat が実行されるたびに、すべての統計がレポートされる。 レポートは CPU ヘッダ行に続いて、CPU 統計の行が表示される。 複数プロセッサのシステムでは、CPU 統計はシステム全体のすべての プロセッサの平均が計算される。 デバイスヘッダ行に続いて、設定された各デバイスの統計行が表示される。

interval パラメータは各レポート間の時間を指定する。 count パラメータは interval パラメータと組み合わせて使われる。 count パラメータが指定されると、 count は interval 秒ごとに生成される回数を決定する。 count パラメータを指定せずに interval パラメータを指定すると、 iostat コマンドは連続してレポートを生成する。

 

レポート

iostat は、CPU 利用レポートとデバイス利用レポートの 2 つを生成する。
CPU 利用レポート
iostat コマンドで生成される最初のレポートは、 CPU 利用レポートである。 複数プロセッサのシステムでは、 CPU の値はすべてのプロセッサの全体の平均である。 レポートは以下のフォーマットである。

%user

ユーザレベル (アプリケーション) の実行で発生する CPU 利用の割合。

%nice

nice 優先度が指定されたユーザレベル (アプリケーション) の 実行で発生する CPU 利用の割合。

%system

システムレベル (カーネル) の実行で発生する CPU 利用の割合。

%iowait

システムに目立ったディスク I/O リクエストがあり、 CPU (群) がアイドル状態であった時間の割合。

%steal

ハイパーバイザーが他の仮想プロセッサに サービスを行っているために、 仮想 CPU (群) が不本意に待たされている時間の割合。

%idle

CPU (群) がアイドル状態でシステムに目立った ディスク I/O リクエストがなかった時間の割合。
デバイス利用レポート
iostat コマンドが生成する 2 つ目のレポートは、 デバイス利用レポートである。 デバイスレポートは、物理デバイスまたはパーティションベースの 統計を提供する。 統計を表示するデバイスまたはパーティションは、 コマンドラインから指定できる。 デバイスとパーティションが指定されない場合、 カーネルが統計を保持していて、 かつシステムで使われているすべてのデバイスの統計が表示される。 ALL キーワードがコマンドラインから指定された場合、 使用されていないデバイスを含めて、全てのデバイスの統計が表示される。 環境変数 POSIXLY_CORRECT が指定されない限り、 転送レートは 1K ブロックをデフォルトとして表示される。 環境変数 POSIXLY_CORRECT が指定されると、 512 バイトブロックが使われる。 使用されるフラグに依存して、以下のフィールドがレポートに表示される。

Device:

この列は /dev ディレクトリにリストされている デバイス (またはパーティション) 名を表示する。

tps
1 秒あたりにデバイスに発行された転送回数。 転送はデバイスへの I/O リクエストである。 複数の論理リクエストがデバイスへの 1 つの I/O リクエストにまとめられる場合もある。 転送サイズは不定である。

Blk_read/s (kB_read/s, MB_read/s)
1 秒あたりのデバイスからの読み込みデータのブロック数 (キロバイト数、メガバイト数)。 ブロックはセクターと等価で、サイズは 512 バイトである。

Blk_wrtn/s (kB_wrtn/s, MB_wrtn/s)
1 秒あたりのデバイスへのの書き込みデータのブロック数 (キロバイト数、メガバイト数)。

Blk_read (kB_read, MB_read)
読み込みの総計ブロック数 (キロバイト数、メガバイト数)。

Blk_wrtn (kB_wrtn, MB_wrtn)
書き込みの総計ブロック数 (キロバイト数、メガバイト数)。

r/s
1 秒あたりの (マージ後の) デバイスからの読み込みが完了したリクエスト数。

w/s
1 秒あたりの (マージ後の) デバイスへの書き込みが完了したリクエスト数。

sec/s (kB/s, MB/s)
1 秒あたりのデバイスに対する読み込みと書き出しセクタ数 (キロバイト数、メガバイト数)。

rsec/s (rkB/s, rMB/s)
1 秒あたりのデバイスからの読み込みセクタ数 (キロバイト数、メガバイト数)。

wsec/s (wkB/s, wMB/s)
1 秒あたりのデバイスへの書き出しセクタ数 (キロバイト数、メガバイト数)。

rqm/s
1 秒あたりのデバイスにキューイングされたマージされた I/O リクエスト数。

rrqm/s
1 秒あたりのデバイスにキューイングされたマージされた 読み込みリクエスト数。

wrqm/s
1 秒あたりのデバイスにキューイングされたマージされた 書き込みリクエスト数。

%rrqm
デバイスに送られる前にマージされた読み込みリクエストの割合。

%wrqm
デバイスに送られる前にマージされた書き込みリクエストの割合。

areq-sz
デバイスに発行した I/O リクエストの平均サイズ (キロバイト)。
以前のバージョンでは、このフィールドは avgrq-sz であり、セクタ数を表していた。

rareq-sz
デバイスに発行した読み込みリクエストの平均サイズ (キロバイト)。

wareq-sz
デバイスに発行した書き込みリクエストの平均サイズ (キロバイト)。

await
デバイスに発行した I/O リクエストが処理されるまでの平均時間 (ミリ秒)。 この時間には、リクエストがキューに入っている時間と、 処理される時間が含まれる。

r_await
デバイスに発行した読み込みリクエストが処理されるまでの 平均時間 (ミリ秒)。 この時間には、リクエストがキューに入っている時間と、 処理される時間が含まれる。

w_await
デバイスに発行した書き込みリクエストが処理されるまでの 平均時間 (ミリ秒)。 この時間には、リクエストがキューに入っている時間と、 処理される時間が含まれる。

aqu-sz
デバイスに発行したリクエストの平均のキューの長さ。
以前のバージョンでは、このフィールドは avgqu-sz であった。

svctm
デバイスに発行した I/O リクエストに対する平均サービス時間 (ミリ秒)。 注意!このフィールドを今後信用してはならない。 このフィールドは将来の sysstat バージョンで削除される。

%util
デバイスに I/O リクエストが発行される経過時間の割合 (デバイスのバンド幅使用率)。 リクエストに対してデバイスがシリアルにサービスする場合、 この値が 100% に近いとデバイスの飽和が起こっている。 RAID アレイや最近の SSD のように、リクエストに対して デバイスがパラレルにサービスする場合、 この値は性能限界を反映しない。
 

オプション

-c
CPU 利用レポートを表示する。
-d
デバイス利用レポートを表示する。
--dec={ 0 | 1 | 2 }
使用する小数点の位置を指定する (0 から 2 で、デフォルトは 2 である)。
-g group_name { device [...] | ALL }
デバイスのグループの統計を表示する。 iostat はリストにある各デバイスの統計をレポートしてから、 リストにあるすべてのデバイスを合わせて group_name という名前の統計の行を表示する。 ALL キーワードは、システムに定義されている すべてのブロックデバイスをグループに含めることを意味する。
-H
このオプションは -g オプションと一緒に指定しなければならない。 このオプションを指定すると、グループ全体の統計が表示されるが、 グループの各デバイスの統計は表示されない。
-h
デバイス利用レポートを人間が読みやすいようにする。 このオプションは、 --human を暗黙裡に有効にする。
--human
サイズを人間が読みやすいフォーマット (例えば 1.0k, 1.2M など) で表示する。 このオプションで表示される単位は、指標に紐付けられたデフォルトの単位 (例えば、キロバイト、セクターなど) を上書きする。
-j { ID | LABEL | PATH | UUID | ... } [ device [...] | ALL ]
永続的なデバイス名を表示する。 オプション ID, LABEL などで、永続的なデバイス名のタイプを指定する。 このオプションは限定的ではなく、唯一の必須条件は /dev/disk のディレクトリに永続的なデバイス名が存在することである。 永続デバイス名は通常長いため、 オプションとして、選択した永続名で複数デバイスを指定できる。
-k
1 秒あたりのキロバイトで統計を表示する。
-m
1 秒あたりのメガバイトで統計を表示する。
-N
登録されたデバイスマッパーのデバイスについて、 デバイスマッパー名を表示する。 LVM2 統計を閲覧するのに役立つ。
-o JSON
統計を JSON (Javascript Object Notation) 形式で表示する。 JSON 出力のフィールド順は定義されておらず、 将来新しいフィールドが追加されるかもしれない。
-p [ { device [,...] | ALL } ]
-p オプションはシステムで使われているブロックデバイスと すべてのパーティションの統計を表示する。 デバイス名がコマンドラインで指定された場合、 そのデバイスとすべてのパーティションが表示される。 ALL キーワードは、使用されていないブロックデバイスを含む、 システムで定義されているすべてのブロックデバイスと パーティションの統計を表示する。 このオプションより前に、オプション -j が定義されていると、コマンドラインで入力されるデバイスは、 選択された永続名タイプで指定できる。
-s
80 文字幅の画面に合うように、短い (狭い) バージョンのレポートを表示する。
-t
各レポートで時間を表示する。 タイムスタンプの形式は、S_TIME_FORMAT 環境変数の値に依存する (下記を参照)。
-V
バージョン番号を表示して、終了する。
-x
拡張された統計を表示する。
-y
指定された間隔で複数レコードを表示する場合、 システムブートからの統計の最初のレポートを省略する。
-z
iostat に対して、サンプリング期間に活動がないデバイスを出力から省略させる。

 

環境変数

iostat コマンドは以下の環境変数を扱う。

POSIXLY_CORRECT
この環境変数が設定されると、転送レートが 1K ブロックではなく、 512 バイトブロックで表示される。

S_COLORS
この環境変数を設定すると、端末上で統計をカラー表示する。 この環境変数に指定可能な値は、 never, always, auto である (最後がデフォルトである)。

値を表示する色 (赤、黄、またはその他の色) は、色によって何かの意味を示している訳ではない。 色は値の範囲を示しているだけである。

S_COLORS_SGR
端末で統計を表示する際に、色とその他の属性を指定する。 この値は、コロン区切りの機能のリストで、デフォルトは H=31;1:I=32;22:M=35;1:N=34;1:Z=34;22 である。 サポートされている機能は以下のとおり。

H=
割合が 75% 以上の場合の SGR (Select Graphic Rendition) 部分文字列。

I=
デバイス名を表示する SGR 部分文字列。

M=
割合が 50% から 75% の場合の SGR 部分文字列。

N=
0 以外の統計値を表示する SGR 部分文字列。

Z=
0 を表示する SGR 部分文字列。

S_TIME_FORMAT
この環境変数が存在し、かつ値が ISO の場合、レポートのヘッダの日付を表示する際に、 現在のロケールを無視する。 代わりに、 iostat コマンドは ISO 8601 フォーマット (YYYY-MM-DD) を使う。 -t オプションのタイムスタンプも ISO 8601 フォーマットに従う。

 

例

iostat
すべての CPU とデバイスのブート時からの 1 回分の履歴を表示する。

iostat -d 2
デバイスのレポートを 2 秒間隔で連続して表示する。

iostat -d 2 6
すべてのデバイスのレポートを 2 秒間隔で 6 回表示する。

iostat -x sda sdb 2 6
デバイス sda と sdb の拡張した統計を 2 秒間隔で 6 回表示する。

iostat -p sda 2 6
デバイス sda と、そのすべてのパーティション (sda1 など) のレポートを 2 秒間隔で 6 回表示する。
 

バグ

iostat コマンドが動作するためには、 /proc ファイルシステムがマウントされていなければならない。

2.6.x より古いカーネルは、もはやサポートしていない。

平均サービス時間 (svctm フィールド) は意味がない。 現状、I/O 統計はブロックレベルで計算されており、 ディスクドライバーがいつリクエストを処理するかは、 分からないためである。 そのため、このフィールドは将来の sysstat のバージョンで削除される。  

ファイル

/proc/stat システム統計を保持する。

/proc/uptime システム uptime を保持する。

/proc/diskstats ディスク統計を保持する。

/sys ブロックデバイス統計を保持する。

/proc/self/mountstats ネットワークファイルシステム統計を保持する。

/dev/disk 永続デバイス名を保持する。  

著者

Sebastien Godard (sysstat <at> orange.fr)  

関連項目

sar(1), pidstat(1), mpstat(1), vmstat(8), tapestat(1), nfsiostat(1), cifsiostat(1)

https://github.com/sysstat/sysstat

http://pagesperso-orange.fr/sebastien.godard/


 

Index

名前
書式
説明
レポート
オプション
環境変数
例
バグ
ファイル
著者
関連項目

This document was created by man2html, using the manual pages.
Time: 06:50:54 GMT, July 13, 2019