iostat - 入出力統計を報告する
/usr/bin/iostat [-cCdDeEiImMnpPrstxXYz] [-l n] [-T u | d] [disk]... [interval [count]]
iostat ユーティリティーはターミナル、ディスク、テープの I/O 活動、CPU 使用率を繰り返し報告します。出力の最初の行はブートから全時間の統計です; 続く各行はその前の間隔からのみの統計です。
この情報を計算するために、カーネルは多数のカウンタを保持しています。各ディスクに対し、カーネルは読み取り、書き込み、読み取りバイト数、書き込みバイト数を数えます。また、カーネルは、キューの入り口と出口で高解像度のタイムスタンプを使用します。これによって、滞留時間や、滞留時間と長さの積の累積をキューごとに記録することができます。これらの値を使って、iostat はスループット、使用率、キュー長、トランザクション率、サービス時間を非常に正確に計測します。端末全般については、カーネルは単純に入出力の文字数をカウントします。
カーネルステータスコマンドの実行中に、システムの state が変更されることがあります。もし関連があれば、状態が変わったメッセージは以下の形式のどれかで iostat の出力に含まれます:
<<device added: sd0>> <<device removed: sd0>> <<partition added: sd0,a>> <<partition removed: sd0,a>> <<NFS mounted: nfs1>> <<NFS unmounted: nfs1>> <<multi-path added: ssd4>> <<multi-path removed: ssd4>> <<controller added: c1>> <<controller removed: c1>> <<processors added: 1, 3>> <<processors removed: 1, 3>>
これらの状態変化メッセージに表示される names は –n や –m オプションによって適切なものに変えられます。
より全般的なシステム統計情報を参照するには、sar(1)、sar(1M)、または vmstat(1M) を使ってください。
iostat ユーティリティーの出力は次の情報を含みます。
ディスクの名前
秒あたり読み込み数
秒あたり書き込み数
秒あたり読み込みキロバイト数
インターバルの平均 I/O サイズは、kr/s を r/s で割って求めることができます。
秒あたり書き込みキロバイト数
インターバルの平均 I/O サイズは、kw/s を w/s で割って求めることができます。
サービスを待っている平均トランザクション数 (キュー長)
これは、デバイスによる受け入れを待っている、デバイスドライバキューに保持されている I/O 操作の数です。
現在サービスを受けている (キューからは削除されたがまだ完了していない) 平均トランザクション数
これは、デバイスによって受け入れられたがまだサービスが終わっていない I/O 操作の数です。
トランザクションの平均レスポンス時間 (ミリ秒単位)
svc_t 出力はデバイスの service 時間よりはむしろ全体的な response 時間を報告します。全体的な時間はトランザクションがキューにいた時間とサービスを受けた時間を含みます。キューで過ごした時間は –x オプションによって wsvc_t 出力列に表示されます。サービストランザクションに費やされた時間は本当の実行時間です。サービス時間もまた –x オプションによって同じレポートの asvc_t 出力列に表示されます。
サービスを待っていたトランザクションがあった (キューが空でない) 時間の割合
ディスクがビジー状態にある (トランザクションが進行中である) 時間の割合
待ち行列 (キュー) での平均サービス時間 (ミリ秒単位)
アクティブなトランザクションの平均サービス時間 (ミリ秒単位)
ハイパーバイザによって占有された CPU 時間の割合。物理ハードウェア上で実行するときは常に 0。
サポートしているオプションは、次のとおりです。
システムがユーザーモード、システムモード、 I/O 待ち状態、アイドル状態のそれぞれに費やした時間の割合を報告します。詳細な情報については「注意」項目をご覧ください。
–x オプションも指定された場合は、 controller id によって集計された拡張ディスク統計を報告します。
各ディスクに関し、秒あたり転送キロバイト数、秒あたり転送数、ミリ秒あたりサービス時間を報告します。
各ディスクに関し、秒あたり転送キロバイト数、秒あたり転送数、およびサービス時間 (ミリ秒単位) を報告します。
デバイスエラーサマリー統計情報を表示します。合計エラー数、ハードエラー数、ソフトエラー数、転送エラー数が表示されます。
全デバイスエラー統計情報を表示します。
–E 出力で、 Serial No の代わりに Device ID を表示します。Device Id はデバイスドライバーが ddi_devid_register(9F) を使用して登録した固有の識別子です。
各間隔で、(適切な場合は) 率ではなくカウントを報告します。
報告の中でディスクの数を n に制限します。デフォルトでは –d と –D のときにはディスク数を 4 に制限し、–x では制限しません。注意: 個別に指定したディスク (以下の disk 参照) には、このディスク制限は適用されません。
ファイルシステムのマウントポイントを報告します。このオプションは –P か –p オプションと共に指定した場合あるいは –Xn か –en と共に使用された場合にもっとも役立ちます。 –m オプションはマウントポイントが実際に出力に現れた場合にのみ役立ちます。このオプションは –n オプションと一緒にのみ使用できます。
データスループットを KB/sec の代わりに MB/sec で表示します。
名前を説明的な形式で表示します。たとえば、cXtYdZ、rmt/N、server:/export/path などです。
デフォルトでは、ディスクは ssd23 や md301 のようなインスタンス名で識別されます。–n オプションを –x オプションと組み合わせることで、ディスク名を cXtYdZsN 形式で表示することができます。こうすることで、ディスク名を物理的ハードウェア特性により関連づけやすくなります。cXtYdZsN 形式は、特にファイバーチャネル (FC) 環境で FC ワールドワイドネームが t フィールドに表示されるため便利です。
各ディスクで、デバイスごとの統計に加え、パーティションごとの統計を報告します。
各ディスクで、パーティションごとの統計のみを報告し、デバイスごとの統計は報告しません。
カンマ区切り形式でデータを表示します。
state changes に関するメッセージを抑止します。
秒あたりの読み取りと端末への書き込み文字数を報告します。
タイムスタンプを表示します。
時間の内部表現の出力表現に u を指定します。time(2) を参照してください。 標準の日付フォーマットに d を指定します。date(1) を参照してください。
scsi_vhci(7D) の管理下にあるディスクについては、ディスクの lun 統計情報に付け加え、lun .controller の統計情報も報告します。
拡張ディスク統計情報を報告します。デフォルトでは、ディスクは ssd23 や md301 のようなインスタンス名で識別されます。x オプションを –n オプションと組み合わせることで、ディスク名を cXtYdZsN 形式で表示することができます。こうすることで、ディスク名を物理的ハードウェア特性により関連づけやすくなります。cXtYdZsN 形式は、特にファイバーチャネル (FC) 環境で FC ワールドワイドネームが t フィールドに表示されるため便利です。
出力表示が要求されない場合は、(–x、–e、–E が指定されない場合は)、–x が適用されます。
scsi_vhci(7D) の管理下にあるディスクについては、ディスクの lun 統計情報に付け加え、lun.targetport とlun.targetport.controller の統計情報も報告します。
–n (説明的) モードではパスの target-port プロパティーを使用して targetport が表示されます。–n が指定されない場合は、より短い port-id を使用して targetport が表示されます。同じ target-port プロパティー値を持つターゲットポートは、すべて同じ port-id を共有します。target-port と port-id の関連付けはリブート後にはなくなります。
出力表示が要求されない場合は、(–x、–e、–E が指定されない場合は)、–x が適用されます。
その行のデータがすべてゼロの場合には行を出力しない。
–xcnCXTdz interval オプションセットは特にディスク I/O 問題が存在するかどうかを判断したり、問題を特定したりする場合に役立ちます。
次のオペランドがサポートされています。
count 回のみ報告します。
報告する対象ディスクを個別に指定します。指定されたディスクに加えて、ディスク数の上限に達するまでは (上記の –l 参照)、アクティブなディスクも報告されます。
各 interval 秒ごとに報告します。
次のコマンドは controller id によって集約された、ユーザー (us) 操作とシステム (sy) 操作に関する 2 つの拡張デバイス統計報告を表示します。–n オプションは –x オプションとともに使用されるため、デバイスはコントローラ名で識別されます。
example% iostat –xcnCXTdz 5 Thursday, May 23, 2013 09:17:03 AM PDT cpu us sy st id 14 31 0 20 extended device statistics r/s w/s kr/s kw wait actv wsvc_t asvc_t %w %b device 3.8 29.9 145.8 44.0 0.0 0.2 0.1 6.4 0 5 c0 666.3 814.8 12577.6 17591.1 91.3 82.3 61.6 55.6 0 2 c12 180.0 234.6 4401.1 5712.6 0.0 147.7 0.0 356.3 0 98 d10 Thursday, May 23, 2013 09:17:03 AM PDT cpu us sy st id 11 31 0 22 extended device statistics r/s w/s kr/s kw wait actv wsvc_t asvc_t %w %b device 0.8 41.0 5.2 20.5 0.0 0.2 0.2 4.4 0 6 c0 565.3 581.7 8573.2 10458.9 0.0 26.6 0.0 23.2 0 3 c12 106.5 81.3 3393.2 1948.6 0.0 5.7 0.0 30.1 0 99 d10使用例 2 iostat を使用して TTY 統計を生成する
次のコマンドは、異なるオペレーションモードの 5 つのディスク活動に関して、2 つの報告を表示します。–x オプションが使用されているため、ディスクはインスタンス名で識別されています。
example% iostat –x tc 5 2 extended device statistics tty cpu device r/s w/s kr/s kw/s wait actv svc_t %w %b tin tout us sy wt id sd0 0.4 0.3 10.4 8.0 0.0 0.0 36.9 0 1 0 10 0 0 0 99 sd1 0.0 0.0 0.3 0.4 0.0 0.0 35.0 0 0 sd6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 nfs1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 nfs2 0.0 0.0 0.0 0.1 0.0 0.0 35.6 0 0 extended device statistics tty cpu device r/s w/s kr/s kw/s wait actv svc_t %w %b tin tout us sy wt id sd0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 155 0 0 0 100 sd1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 sd6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 nfs1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 nfs2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0使用例 3 iostat を使用してパーティションとデバイスの統計を生成する。
次のコマンドは各ディスクのパーティションとデバイス統計を生成します。–n オプションは –x オプションとともに使用されているため、ディスクはコントローラ名で識別されています。
example% iostat -xnp extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 0.4 0.3 10.4 7.9 0.0 0.0 0.0 36.9 0 1 c0t0d0 0.3 0.3 9.0 7.3 0.0 0.0 0.0 37.2 0 1 c0t0d0s0 0.0 0.0 0.1 0.5 0.0 0.0 0.0 34.0 0 0 c0t0d0s1 0.0 0.0 0.0 0.1 0.0 0.0 0.6 35.0 0 0 fuji:/export/home/user3使用例 4 インスタンス名から説明的名前へ翻訳する
次の例は iostat によって特定のインスタンス名を説明的名前に翻訳します。
example% iostat -xn sd1 extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c8t1d0使用例 5 特定のディスクのターゲットポートとコントローラアクティビティーを表示する
次の例では、同じターゲットポートに接続された 4 つのコントローラがあります。
# iostat -Y ssd22 extended device statistics device r/s w/s kr/s kw/s wait actv svc_t %w %b ssd22 0.2 0.0 1.5 0.0 0.0 0.0 0.7 0 0 ssd22.t2 0.2 0.0 1.5 0.0 0.0 0.0 0.0 0 0 ssd22.t2.fp0 0.0 0.0 0.4 0.0 0.0 0.0 0.0 0 0 ssd22.t2.fp1 0.0 0.0 0.4 0.0 0.0 0.0 0.0 0 0 ssd22.t2.fp2 0.0 0.0 0.4 0.0 0.0 0.0 0.0 0 0 ssd22.t2.fp3 0.0 0.0 0.4 0.0 0.0 0.0 0.0 0 0
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
この呼び出しは開発中です。人間が読める形式の出力は不安定 (Unstable) です。
date(1), sar(1), sar(1M), mpstat(1M), vmstat(1M), time(2), attributes(5), scsi_vhci(7D)
CPU 使用率の合計は製品の百分率の数字中の丸め誤差のために 100 と若干異なるかもしれません。
svc_t 応答時間は特に I/0 (r/s+w/s) 率が毎秒 0.5 以下の場合はっきりしません。このような場合、問題のない数値の急上昇がよく見られます。
mpstat ユーティリティーは同じ st、usr、sys 統計情報を報告します。詳細については、mpstat(1M) を参照してください。
zone で実行された場合、かつ、プールファシリティーがアクティブだった場合は、iostat(1M) は zone が割り当てられているプールのプロセッサセットの中のプロセッサの情報のみを表示します。