SYSTAT(1)

名称
systat - システムの統計情報を CRT に表示する

書式
systat [-display] [refresh-interval]

解説
systat はシステムの各種統計情報をスクリーン指向な方法で ncurses(3) の curses スクリーンディスプレイライブラリを用いて表示します。

systat の走行中はスクリーンが通常 2 つのウィンドウに分割されます (例外は vmstat を表示する場合で この時はスクリーン全体を使います)。 上のウィンドウはその時のシステムのロードアベレージを表示します。 下のウィンドウに表示される情報は、ユーザのコマンドに応じて 変化するかもしれません。スクリーンの最終行はユーザの入力と エラーメッセージのために予約されています。

デフォルトでは systat はプロセッサ使用率が最大のプロセスを下のウィンドウに表示します。 他にはスワップ領域の使用状況、ディスク I/O の統計情報 ( iostat(8) 式に)、仮想記憶の統計情報 ( vmstat(8) 式に)、ネットワークの ``mbuf'' 利用率、 TCP/IP 統計情報、 ネットワークコネクション ( netstat(1) 式に) を表示します。

入力は 2 つの異なるレベルで解釈されます。 ``グローバル'' なコマンドインタプリタがすべてのキーボード入力を 処理します。もしこのコマンドインタプリタがコマンドを認識できないと、 入力行は表示する種類毎のコマンドインタプリタに渡されます。 これによって各表示内容に応じたコマンドを持つ事が可能になります。

コマンド行のオプション:

-display
    - に続けて display として以下のいずれか一つを指定します: icmp, iostat, ip, mbufs, netstat, pigs, swap, tcp, vmstat 。これらの表示内容は対話的にも ( “-” 無しに) 指定でき、そして詳細は以下の説明にあります。

refresh-interval
    refresh-value にスクリーンの更新間隔を秒数で指定します。

いくつかの文字は systat を即座に反応させます。 そういった文字には以下の物があります

^L  スクリーンを更新します。

^G  その時点で下のウィンドウに表示されている ``表示内容'' の名称と 更新間隔を表示します。

^Z  systat を停止します。

:   カーソルをコマンドラインに移動して打ち込まれた入力行を コマンドとして解釈します。コマンドの入力中は 現位置文字消去、単語消去、行取消の各編集機能が使えます。

以下のコマンドは ``グローバル'' なコマンドインタプリタによって 解釈されます。

help
    指定可能な表示内容をコマンドラインに表示します。

load
    過去 1、5、15分間のロードアベレージをコマンドラインに表示します。

stop
    スクリーンの更新を止めます。

    [start] [number] スクリーンの更新を開始 (継続) します。もし数値で秒数指定の 引数が与えられると更新間隔 (の秒数) として解釈されます。 数値のみを与えると更新間隔がその値にセットされます。

quit
    systat を終了します。 (これは q と省略できます。)

指定可能な表示内容には以下があります:

pigs
    下のウィンドウに、主記憶を占めプロセッサ利用率が最大のプロセスを 表示します (デフォルトの表示内容です)。 ユーザプロセスへのプロセッサの割当が 100% 未満の時は、 残りは ``idle'' プロセスに割り当てられているものと扱います。

icmp
    下のウィンドウに、 Internet Control Message Protocol (“ICMP”) で送受信されたメッセージの統計情報を表示します。 スクリーンの左半分には受信したパケットの情報を表示し、 右半分には送信されたと考えられるパケットの情報を表示します。

    表示内容が icmp の場合は 2 つのコマンドが利用できます: mode と reset です。 mode コマンドは与えられた引数に応じて 4 つの表示モードから 1 つを選ぶために使います:
    rate:
        それぞれの値の変動を秒単位にパケット数で表示します (デフォルトです)
    delta:
        それぞれの値の変動を更新間隔単位にパケット数で表示します
    since:
        表示が最後にリセットされてからのそれぞれの値の変動の総計を表示します
    absolute:
        各統計の絶対値を表示します

    reset コマンドは since モードの基点をリセットします。 引数なしの mode コマンドはその時点のモードをコマンドラインに表示します。

ip  IP と UDP の統計情報を表示するという点を除いて icmp と同じです。

tcp icmp に似ていますが、 TCP の統計情報を表示します。

iostat
    下のウィンドウに、プロセッサ利用率とディスクのスループットの 統計情報を表示します。プロセッサ利用率の統計情報は ユーザモード (``user'')、低いプライオリティで実行された ユーザモードのプロセス (``nice'')、システムモード (``system'')、 割り込みモード (``interrupt'')、アイドル (``idle'') での総実行時間 の棒グラフとして表示されます。 ディスクのスループットの統計情報としては、各ドライブについて、 秒あたりのメガバイト数、秒あたりの平均ディスクトランザクション数、 トランザクションあたりの平均転送キロバイト数が表示されます。 この情報は棒グラフまたは下へスクロールする数値の列で表示されます。 棒グラフでの表示がデフォルトです;

    以下のコマンドは表示内容が iostat の場合に特有です; 先頭からの一意に識別可能な文字数だけで指定可能です。

    numbers
        ディスク I/O の統計情報を数値形式で表示します。値は下へスクロールする 数値の列として表示されます。
    bars
        ディスク I/O の統計情報を棒グラフ形式で表示します (デフォルト)。
    kbpt
        トランザクションあたりのキロバイト数の表示を切り替えます (デフォルトではトランザクションあたりのキロバイトは表示されません)。

swap
    カーネルに組み込まれている全スワップ領域について 利用状況に関する情報を表示します。 最初の列はパーティションのデバイス名です。 次の列はパーティションの総容量です。 Used の列は それまでに使われた総ブロックを示します; グラフは各パーティションで使用中の部分の割合を示します。 2 つ以上の使用中のスワップパーティションがある場合は、 合計の行も表示されます。 カーネルに組み込まれているものの、使われていない物は 使用不可として表示されます。

mbufs
    下のウィンドウに、何らかの用途、すなわち、データ、ソケット構造体等々に 確保された mbuf の個数を表示します。

vmstat
    画面全体を使って、 仮想記憶の利用状況、プロセススケジューリング、 デバイスからの割り込み、システムの名前変換キャッシュ、 ディスク I/O 等々に関する (やや込み入った) 統計情報の要約を表示します。

    画面の左上の領域にはログインしているユーザ数と過去 1、5、15分間の ロードアベレージが表示されます。 この行の下はメモリ利用率の統計情報です。 この表の 1 行目はアクティブなプロセス、つまり過去 20 秒以内に 走行状態だったことのあるプロセスのみのメモリ利用率を報告します。 2 番目の行は全プロセスのメモリ利用状況を報告しています。 1 番目の列はプロセスによって要求された物理ページ数を表示します。 2 番目の列は読みだし専用のテキストページに当てられた 物理ページ数を表示します。 3 番目と 4 番目の列は同じ物に関して仮想ページの情報を表示します。 これは全プロセスが全ページを持つとした時に必要となるページ数を表します。 最後に、最終列はフリーリスト上の物理ページ数を示します。

    メモリ情報の下は平均プロセス数のリスト (1 更新期間前からのもの) で、 走行可能 (`r')、ページ待ち中 (`p')、 ページング以外のディスク待ち中 (`d')、 スリープ状態 (`s')、スワップアウトされているが実行されるのを 待っている状態 (`w') です。 この行にはコンテキストスイッチの平均回数 (`Csw')、 トラップ (`Trp'; ページフォルトを含む)、 システムコール (`Sys')、割り込み (`Int')、 ネットワークソフトウェア割り込み (`Sof')、 ページフォルト (`Flt') も表示します。

    このプロセスキューの長さのリストの下は 時間の総計をシステム (`=' で示されます)、割り込み (`+' で示されます)、 ユーザ (`>' で示されます)、ナイス (`-' で示されます)、 アイドル (` ' で示されます) について数値のリストと棒グラフで 表した物です。

    プロセス情報の下はファイル名変換の統計情報です。 これは前の更新期間中に行われたファイル名から inode 番号への変換の 回数、システム全体で共通の変換キャッシュで処理された物の回数と 割合、プロセス毎の変換キャッシュで処理された物の回数と割合を 表示しています。

    左下はディスクアクセス状況です。 ここでは 1 更新間隔 (デフォルトでは 5 秒) において、 転送あたりのキロバイト数、秒あたりの転送回数、秒あたりの転送メガバイト数、 ディスクがビジーであった時間のパーセンテージを報告します。 システムは、ほぼすべてのストレージデバイスの統計情報を保持します。 一般的には、7 個までのデバイスが表示されます。 表示されるデバイスは、 デフォルトではカーネルのデバイスリストの先頭にあるものです。 devstat システムの詳細については、 devstat(3) および devstat(9) を参照してください。

    右上の日時の下はページングとスワップの稼働状況です。 最初の 2 列は、1 更新間隔の間にページフォルトとページデーモンによって、 読み込まれたページ数と掃き出されたページ数の 1 秒あたりの平均を報告します。 3 番目と 4 番目の列は、1 更新間隔の間にスケジューラによって発行された スワップ要求により 読み込まれたページ数と掃き出されたページ数の 1 秒あたりの平均を報告します。 この情報の 1 行目は 1 更新間隔での秒あたりの平均ディスク転送回数を 示します; この情報の 2 行目は 1 更新間隔での秒あたりの平均転送ページ数を 示します。

    ページングの統計情報の下は仮想記憶システムの以下の項目の平均数を 表示する列です。それぞれ、 書き込み時にコピーが行われたページ数 (`cow')、 要求時 0 クリアが行われたページ数 (`zfod')、 ページング対象から外され、固定されているページ数 (`wire')、 遅い (オンザフライの) ゼロフィルの割合 (`%slo-z')、 最近参照されたページ数 (`act')、 ページングの候補になっているページ数 (`inact')、 バッファキャッシュキューにあるページ数 (`cache')、 フリーページ数 (`free')、 ページデーモンが解放したページ数 (`daefr')、 プロセスが終了した事によって解放されたページ数 (`prcfr')、 フリーリストから再有効化されたページ数 (`react')、 ページデーモンが起こされた回数 (`pdwak')、 ページデーモンが調べたページ数 (`pdpgs')、 読み込み途中でページフォルトがブロックされた回数 (`intrn') の 1 更新間隔での秒あたりの平均値です。

    この列のいちばん下は、以下の用途に使われている メモリの総量をそれぞれについてキロバイト単位で示しています。 バッファキャッシュのために使われている分 (`buf')、 バッファキャッシュ中のダーティバッファ数 (`dirtybuf')、 vnode キャッシュの望まれる最大サイズ (`desiredvnodes') (ネームキャッシュのサイズまでを除くと、大部分は未使用)、 実際に確保された vnode 数 (`numvnodes')、 確保された vnode でフリーな物の数 (`freevnodes')

    画面の右下はシステムによって処理された割り込みの詳細です。 リストのトップは更新期間中の秒あたりの総割り込み数です。 列の残りの部分は総割り込み数のデバイス毎の詳細です。 ブートしてから少なくとも 1 回は割り込みを発生したデバイスについてのみ 表示されます。

    以下のコマンドは表示内容が vmstat の場合に特有です; 先頭からの一意に識別可能な文字数だけで指定可能です。

    boot
        システムがブートしてからの累積の統計情報を表示します。
    run このコマンドが与えられてからの走行中のトータルとして統計情報を表示します。
    time
        更新期間の平均で統計情報を表示します (デフォルト)。
    want_fd
        fd デバイスのディスク使用状況を表示するか否かを切り替えます。
    zero
        走行中の統計情報を 0 にリセットします。

netstat
    下のウィンドウにネットワーク接続状況を表示します。デフォルトでは、 リクエストを待っているネットワークサーバは表示されません。 各アドレスは ``host.port'' のフォーマットで、可能であれば シンボルで表示されます。アドレスを数字で表示することや、 ポート、ホスト、プロトコルの表示を制限することが可能です。 (先頭からの一意に識別可能な文字数だけで指定可能です):

    all リクエストを待っているサーバプロセスの表示を切り替えます (これは netstat(1) の -a フラグと等価です)。
    numbers
        ネットワークアドレスを数字で表示します。
    names
        ネットワークアドレスをシンボルで表示します。
    proto protocol
        protocol で指定されたプロトコルを使っているネットワークコネクションのみを 表示します (サポートしているプロトコルは ``tcp'',``udp'',``all'')。
    ignore [items]
        指定されたホストまたはポートとの接続に関する情報を表示しません。 ホストとポートは名前 (``vangogh'' や ``ftp'')、または数字で 指定できます。ホストのアドレスはインターネットのドット表記を 使用します (``128.32.0.9'')。空白で区切って 1 つのコマンドに 複数の指定が可能です。
    display [items]
        指定されたホストまたはポートとの接続に関する情報を表示します。 ignore と同様に、 [items] は名前または数字が使用可能です。
    show [ports|hosts]
        コマンドラインに、その時点で選択されているプロトコル、 ホスト、ポートを表示します。無視されるホストとポートには `!' を前置します。もし ports か hosts が show の引数として与えられると、 指定された情報だけが表示されます。
    reset
        ポート、ホスト、プロトコルの選択メカニズムをデフォルト (あらゆるプロトコル、ポート、ホスト) の状態にリセットします。

表示内容の切り替えコマンドは先頭からの一意に識別可能な 文字数に短縮できます; 例えば ``iostat'' は ``io'' と省略できます。 画面サイズが表示内容に不十分な時は情報が捨てられる可能性があります。 例えば、10 台のドライブがあるマシンでは iostat の棒グラフは 24 行の端末では 3 ドライブ分しか表示しません。 棒グラフが割り当てられた画面のスペースに収まらない時は 切り詰められて実際の値は棒の ``先端部分'' に表示されます。

以下のコマンドはディスクドライブに関する情報を表示する物に 共通です。これらのコマンドは、あなたのシステムに、通常 画面に表示しきれない数のドライブがある場合に、情報を表示する ドライブのセットを選択するために使うためのものです。

ignore [drives]
    指定されたドライブに関する情報を表示しません。複数のドライブを 空白で区切って指定できます。
display [drives]
    指定されたドライブに関する情報を表示します。複数のドライブを 空白で区切って指定できます。
only [drives]
    指定されたデバイスのみ表示します。 複数のデバイスを指定可能であり、その場合空白で区切ります。
drives
    使用可能なデバイスのリストを表示します。
match
    type,if,pass [| ...] 指定したパターンにマッチするデバイスを表示します。 基本マッチング式は、 iostat(8) で使用するものと同じですが、1 点のみ異なります。 それぞれが OR される複数の -t 引数を指定する代りに、 複数のマッチング式をパイプ (‘|’) 文字で結合して指定します。 それぞれのマッチング式中でコンマで区切られた引数に関して それぞれ AND がとられてから、 パイプで区切られたマッチング式に関してそれぞれ OR がとられます。 組み合わせ式に対してマッチするデバイスは、 表示する余地があれば表示されます。 例:

        match da,scsi | cd,ide

    これは、 全 SCSI ダイレクトアクセスデバイスと、全 IDE CDROM デバイスを表示します。

        match da | sa | cd,pass

    これは、全ダイレクトアクセスデバイス、全シーケンシャルアクセスデバイス、 そして CDROM へのアクセスを提供する全パススルーデバイスを表示します。

関連項目
netstat(1), kvm(3), icmp(4), ip(4), tcp(4), udp(4), iostat(8), vmstat(8)

関連ファイル
/kernel
    ネームリストを読み出します。
/dev/kmem
    主記憶の情報を取ります。
/etc/hosts
    ホスト名をひきます。
/etc/networks
    ネットワーク名をひきます。
/etc/services
    ポート名をひきます。

歴史
systat プログラムは 4.3BSD に初めて登場しました。 icmp, ip, tcp の表示は FreeBSD 3.0 に初めて登場しました; ICMP, IP, TCP, UDP の統計情報のために別の表示モードを用意するという考え方は、 Silicon Graphics の IRIX システムの netstat(1) の -C オプションから借用しました。

バグ
表示内容によっては 1 行に最低で 80 文字が表示できる事を想定しています。 vmstat は表示領域が足りないようです。なぜなら (訳注: 原文が切れています) (新規のプログラムとしてではなく独立した表示画面として追加されました)。

日本語訳
野首 寛高(hnokubi@yyy.or.jp): FreeBSD 用に翻訳