トップ 一覧 検索 ヘルプ RSS ログイン

LN-procの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!linux の /proc の備忘録

  FreeBSD の場合には
      fstab に次の行を追加するか
      proc                /proc           procfs  rw,noauto       0       0
      もしくは
      mount /proc
      を実行
!/proc/[pid]/stat
 kernel 2.6 は (44) ??
 プロセスの状態についての情報。 これは ps(1)  で使われ、 カーネルのソースファイル fs/proc/array.c で定義されている。
 各フィールドを順番に、 scanf(3)  のフォーマット指定子付きで以下に示す。
        (1) pid  %d
                        プロセス ID。
        (2) comm  %s
                        括弧でくくられた実行形式のファイル名。  実行形式がスワップアウトされているかどうかによらず、
                        見ることができる。
        (3) state  %c
                        プロセスの状態を示す、以下のいずれか 1 文字。
                        R  実行中 (Running)
                        S  Sleeping in an interruptible wait
                        D  Waiting in uninterruptible disk sleep
                        Z  ゾンビ (Zombie)
                        T  (シグナルでの) 停止、または (Linux 2.6.33 より前では) トレースによる停止
                        t  トレースによる停止 (Tracing stop) (Linux 2.6.33 以降)
                        W  ページング中 (Linux 2.6.0 より前のみ)
                        X  死亡 (Dead) (Linux 2.6.0 以降)
                        x  死亡 (Dead) (Linux 2.6.33 から 3.13 までのみ)
                        K  Wakekill (Linux 2.6.33 から 3.13 までのみ)
                        W  Waking (Linux 2.6.33 から 3.13 までのみ)
                        P  Parked (Linux 3.9 から 3.13 までのみ)
         (4) ppid  %d
                        このプロセスの親プロセスの PID。
         (5) pgrp  %d
                        プロセスのプロセスグループ ID。
         (6) session  %d
                        プロセスのセッション ID。
         (7) tty_nr  %d
                        プロセスの制御端末 (マイナーデバイス番号はビット 31〜20 と  7〜0  にまたがって格納され、  メ
                        ジャーデバイス番号はビット 15〜8 に格納される)。
         (8) tpgid  %d
                        プロセスの制御端末のフォアグランド・プロセスグループの ID。
          (9) flags  %u
                        プロセスのカーネルフラグワード。 ビットの意味は、 <linux/sched.h> で定義されている PF_* を参
                        照すること。 詳細はカーネルのバージョンに依存する。
                        このフィールドのフォーマットは Linux 2.6 より前では %lu であった。
          (10) minflt  %lu
                        プロセスが引き起こしたマイナーフォールト (minor fault、ディスクから メモリーページへのロード
                        を必要としないフォールト) の回数。
          (11) cminflt  %lu
                        (そのプロセスが終了を待っている) 子プロセスが引き起こしたマイナーフォールトの回数。
          (12) majflt  %lu
                        プロセスが引き起こしたメジャーフォールト  (major fault、ディスクからメモリーページへのロード
                        を必要とするフォールト) の回数。
          (13) cmajflt  %lu
                        (そのプロセスが終了を待っている) 子プロセスが引き起こしたメジャーフォールトの回数。
          (14) utime  %lu
                        このプロセスがユーザーモードでスケジューリングされた時間の合計。 clock tick 単位で計測される
                        (sysconf(_SC_CLK_TCK) で割った値が表示される)。 この値にはゲスト時間 guest_time (仮想 CPU の
                        実行に消費された時間) も含まれる。これは、ゲスト時間のフィールドを認識しないアプリケーション
                        において、ゲスト時間分を計算に入れ損ねないようにするためである。
          (15) stime  %lu
                        プロセスのカーネルモードでの実行時間   (単位  jiffies)。  このプロセスがカーネルモードでスケ
                        ジューリングされた時間の合計。 clock tick 単位で計測される (sysconf(_SC_CLK_TCK)  で割った値
                        が表示される)。
           (16) cutime  %ld
                        このプロセスの子プロセスで、終了待ち  (waited-for) のプロセスが、 ユーザーモードでスケジュー
                        リングされた時間の合計。 clock tick 単位で計測される (sysconf(_SC_CLK_TCK)  で割った値が表示
                        される)。 (times(2)  も参照すること。) この値にはゲスト時間 cguest_time (仮想 CPU を実行する
                        のに消費した時間、下記参照) も含まれる。
            (17) cstime  %ld
                        このプロセスの子プロセスで、終了待ち (waited-for) のプロセスが、カーネルモードでスケジューリ
                        ングされた時間の合計。  clock tick 単位で計測される (sysconf(_SC_CLK_TCK) で割った値が表示さ
                        れる)。
            (18) priority  %ld
                        (Linux   2.6   の場合の説明)   リアルタイムスケジューリングポリシー   (下記の    policy    ;
                        sched_setscheduler(2) 参照) で動作しているプロセスでは、 この 値はスケジューリング優先度を反転した値 (スケジューリング優先度を マイナスにし た値) となる。値は -2 から -100 までの範囲の数値で、 それぞれリアルタイム優先 度の 1 から 99 に対応する。 リアルタイム以外のスケジューリングポリシーで動作し ているプロセスでは、 この値はカーネル内で管理されている nice 値そのもの(setpriority(2)) となる。 カーネルは nice 値を 0 (高) から 39 (低) の範囲 の値として保持しteおり、 それぞれユーザーに見える nice 値の -20 から 19 に対応 する。
                        Linux 2.6 より前では、このプロセスに割り当てられたスケジューリング  重みを変換した値が表示されていた。
              (19) nice  %ld
                        nice 値 (setpriority(2) 参照)。 19 (最低優先) から -20 (最高優先) の範囲の値である。
              (20) num_threads  %ld
                        このプロセスのスレッド数  (Linux 2.6 以降)。 カーネル 2.6 より前では、このフィールドは削除さ
                        れたフィールドの 場所埋めとして 0 にハードコードされていた。
              (21) itrealvalue  %ld
                        インターバルタイマーによって、次に SIGALRM がプロセスへ送られるまでの時間  (単位  jiffies)。
                        カーネル  2.6.17 以降では、このフィールドはメンテナンスされなくなり、 0 にハードコードされて
                        いる。
              (22) starttime  %llu
                        プロセスの起動時刻。システムが起動した時刻が起点である。 Linux 2.6 より前のカーネルでは、 こ
                        の値の単位は   jiffies  であった。  Linux  2.6  以降では、  値の単位はクロック  tick  である
                        (sysconf(_SC_CLK_TCK) で割った値となる)。
                        このフィールドのフォーマットは Linux 2.6 より前では %lu であった。
              (23) vsize  %lu
                        仮想メモリーのサイズ。単位はバイト。
              (24) rss  %ld
                        Resident Set Size。プロセスが持っている実メモリー上のページ数。 これはちょうどテキスト、デー
                        タ、スタック空間に使われているページ数である。 デマンドロードされていないページや スワップア
                        ウトされたページの数は含んでいない。
              (25) rsslim  %lu
                        このプロセスの rss の現在のソフトリミット (バイト単位)。 getrlimit(2) の RLIMIT_RSS の説明を
                        参照。
              (26) startcode  %lu
                        プログラムテキストが実行可能であるような領域の先頭アドレス。
              (27) endcode  %lu
                        プログラムテキストが実行可能であるような領域の末尾アドレス。
              (28) startstack  %lu
                        スタックの開始アドレス (すなわち、スタックの底)。
              (29) kstkesp  %lu
                        現在の ESP (スタックポインター) の値。 プロセスのカーネルスタックページにある。
              (30) kstkeip  %lu
                        現在の EIP (インストラクションポインター) の値。
              (31) signal  %lu
                        処理待ちのシグナルのビットマップ。 10 進数で表示される。このフィールドは廃止予定である。リア
                        ルタイムシグナルに関する情報は表示されないからである。代わりに  /proc/[pid]/status  を使うこと。
              (32) blocked  %lu
                        ブロックされた (blocked) シグナルのビットマップ。 10 進数で表示される。 このフィールドは廃止
                        予定である。       リアルタイムシグナルに関する情報は表示されないからである。       代わりに
                        /proc/[pid]/status を使うこと。
              (33) sigignore  %lu
                        無視された (ignored) シグナルのビットマップ。 10 進数で表示される。 このフィールドは廃止予定
                        である。         リアルタイムシグナルに関する情報は表示されないからである。         代わりに
                        /proc/[pid]/status を使うこと。
              (34) sigcatch  %lu
                        捕捉された  (caught) シグナルのビットマップ。 10 進数で表示される。 このフィールドは廃止予定
                        である。         リアルタイムシグナルに関する情報は表示されないからである。         代わりに
                        /proc/[pid]/status を使うこと。
              (35) wchan  %lu
                        This  is  the "channel" in which the process is waiting.  It is the address of a location in
                        the kernel where the process is sleeping.  The corresponding symbolic name can be  found  in
                        /proc/[pid]/wchan.
              (36) nswap  %lu
                        スワップされたページ数 (メンテナンスされていない)。
              (37) cnswap  %lu
                        子プロセスの nswap の累計 (メンテナンスされていない)。
              (38) exit_signal  %d  (Linux 2.1.22 以降)
                        プロセスが死んだときに親プロセスに送られるシグナル。
              (39) processor  %d  (Linux 2.2.8 以降)
                        このプロセスを最後に実行した CPU の番号。
              (40) rt_priority  %u  (Linux 2.5.19 以降)
                        リアルタイムスケジューリングの優先度。  リアルタイムポリシーの元でスケジューリングされるプロ
                        セスでは 1 から 99 の範囲の値となり、 リアルタイム以外のスケジューリングポリシーのプロセスで
                        は 0 となる (sched_setscheduler(2)  参照)。
              (41) policy  %u  (Linux 2.5.19 以降)
                        スケジューリングポリシー  (sched_setscheduler(2)  参照)。 値は、 linux/sched.h の SCHED_* 定
                        数を使ってデコードすればよい。
                        このフィールドのフォーマットは Linux 2.6.22 より前は %lu であった。
              (42) delayacct_blkio_ticks  %llu  (Linux 2.6.18 以降)
                        (clock tick (100分の1秒) 単位での) ブロック I/O の総遅延量。
              (43) guest_time  %lu  (Linux 2.6.24 以降)
                        プロセスのゲスト時間 (ゲスト OS の仮想 CPU を実行するのに消費された時間)。 clock tick 単位で
                        計測される (sysconf(_SC_CLK_TCK) で割った値が表示される)。
              (44) cguest_time  %ld  (Linux 2.6.24 以降)
                        プロセスの子プロセスのゲスト時間。  clock tick 単位で計測される (sysconf(_SC_CLK_TCK) で割っ
                        た値が表示される)。
              (45) start_data  %lu  (Linux 3.3 以降)
                        Address above which program initialized and uninitialized (BSS) data are placed.
              (46) end_data  %lu  (Linux 3.3 以降)
                        Address below which program initialized and uninitialized (BSS) data are placed.
              (47) start_brk  %lu  (Linux 3.3 以降)
                        Address above which program heap can be expanded with brk(2).
              (48) arg_start  %lu  (Linux 3.5 以降)
                        プログラムのコマンドライン引き数 (argv) が置かれる開始アドレス。
              (49) arg_end  %lu  (Linux 3.5 以降)
                        プログラムのコマンドライン引き数 (argv) が置かれる終了アドレス。
              (51) env_end  %lu  (Linux 3.5 以降)
                        プログラムの環境 (environment) が置かれる終了アドレス。
              (52) exit_code  %d  (Linux 3.5 以降)
                        waitpid(2) が報告する形式のスレッドの終了ステータス。


!/proc/[pid]/statm
(ページ単位で計測した) メモリー使用量についての情報を提供する。 各列は以下の通りである。

                  size       プログラムサイズの総計
                             (/proc/[pid]/status の VmSize と同じ)
                  resident   実メモリー上に存在するページ
                             (/proc/[pid]/status の VmRSS と同じ)
                  share      共有ページ (ファイルと関連付けられているページ)
                  text       テキスト (コード)
                  lib        ライブラリ (Linux 2.6 では未使用)
                  data       データ + スタック
                  dt         ダーティページ (Linux 2.6 では未使用)