Linux Master: Monitoring

Top

top(1) 出力に関する解説

  1. uptime(1) の出力
    現在の時刻 up 稼働時間(日数と時間), ログインユーザ数, 平均負荷
  2. Tasks プロセスの統計情報
    totalプロセス総数
    running実行中のプロセス数
    sleepingデバイス、CPU割当て待ちプロセス数
    stopped一時停止中のプロセス数
    zombieゾンビプロセス数
  3. Cpu(s): CPU 利用率
    %usUser area (アプリでの利用率)
    %sySystem area (OSのオーバーヘッド)
    %niNice設定プロセス割合
    %idIdle (待機率)
    %waFile I/O wait (デバイス待ち)
    %hiHardware interrupt(HW割込み処理)
    %siSoftware interrupt(SW割込み処理)
    %stVM Storen (VMのオーバーヘッド)
  4. Mem: 実メモリサマリ
  5. Swap: スワップ領域サマリ
  6. プロセスサマリ
    HeaderName(key)Description
    PIDProcess ID(pid)プロセス通番
    USERUser Name(user)プロセス所有ユーザ名
    PRPriorityプロセス優先度 (高)-100(RT)〜 -2,0〜39(低)
    NINice(nice)スケジュール優先度 (高)-20〜19(低)
    VIRTVirtual size仮想メモリサイズ(KB),VIRT = SWAP + RES
    RESResident size常駐メモリセットサイズ(KB)
    SHRSharad memory size共有メモリサイズ(KB)
    S/STATStatusプロセスの状態
    D: Device wait デバイス待ち(割込み不可)
    R: Running 実行(可能)
    S: Sleep イベント待ち(割込み可)
    T: Trace シグナルによる停止
    (W: page wate 2.6以降廃止)
    X: eXit - 終了中 本来表示されない
    Z: Zonbie - 終了(後片付け失敗)
    --
    < 高優先度
    N: Niced 低優先度
    L: page Locked 実メモリページロック
    (リアルタイム処理、カスタムデバイスドライバ)
    s: Session leader
    l: multi threaded, CLONE_THREAD使用
    +: in foreground process group
    %CPUPercentage CPU(pcpu)プロセス生存期間中の CPU 利用時間
    %MEMPercentage Memory(%mem,pmem)実メモリに占める常駐セットサイズ比率
    TIME+Elapsed timeプロセス実行時間(s)
    COMMANDCommand(comm)投入されたコマンド列

パフォーマンステストサンプル

time コマンドは、続くコマンドの実行にかかった時間を表示します。

real - 全体にかかった時間 elapsed time
user - アプリケーションとして動作した時間
sys - OS の処理時間
* 無駄にHDDへ書き込むテスト
$ time dd if=/dev/zero of=/tmp/data bs=50000 count=50000
50000+0 レコード入力
50000+0 レコード出力
2500000000 バイト (2.5 GB) コピーされました、 8.21963 秒、 304 MB/秒

real	0m8.239s
user	0m0.116s
sys	0m4.564s

* 無駄にCPUを消費するテスト
$ cat a.bc
#! /usr/bin/bc -l
scale=100
for(r=0.0;r<6.28;r+=0.00001) s(r)*c(r)
quit
$ chmod a+rx a.bc
$ time ./a.bc > /dev/null

real	0m9.225s
user	0m9.201s
sys	0m0.011s
sar (リソース統計)は sysstat パッケージに含まれます。 (参考)sarインストール&設定手順