Manpages

名 前

proc − プ ロ セ ス の 情 報 を 含 む 擬 似 フ ァ イ ル シ ス テ ム

説 明

proc フ ァ イ ル シ ス テ ム は 擬 似 的 な フ ァ イ ル シ ス テ ム で あ り 、 カ ー ネ ル 内 の デ ー タ へ の イ ン タ ー フ ェ ー ス と し て 使 用 さ れ る 。 一 般 的 に は /proc に マ ウ ン ト さ れ る 。 大 部 分 の フ ァ イ ル は 読 み 出 し 専 用 (read−only) で あ る が 、 い く つ か の フ ァ イ ル は 書 き 込 み 可 能 で あ り 、 そ の フ ァ イ ル に 書 き 込 め ば カ ー ネ ル の 内 部 変 数 を 変 更 で き る 。 以 下 の リ ス ト で は /proc 階 層 以 下 の フ ァ イ ル や デ ィ レ ク ト リ の 多 く に つ い て 説 明 し て い る 。
/proc/[pid]
実 行 中 の プ ロ セ ス に つ い て の サ ブ デ ィ レ ク ト リ 。 サ ブ デ ィ レ ク ト リ 名 は (そ の プ ロ セ ス の ) プ ロ セ ス ID で あ る 。 各 サ ブ デ ィ レ ク ト リ は 、 以 下 の 擬 似 フ ァ イ ル と デ ィ レ ク ト リ を 含 む 。
/proc/[number]/auxv
(カ ー ネ ル 2.6.0−test7 以 降 ) 実 行 時 に プ ロ セ ス に 渡 さ れ た ELF イ ン タ ー プ リ タ ー 情 報 が 格 納 さ れ て い る 。 個 々 の エ ン ト リ ー は 、 unsigned long 型 の ID 1 個 に unsigned long 型 の 値 1 個 が 続 く フ ォ ー マ ッ ト で あ る 。 最 後 の エ ン ト リ ー に は 0 が 2 個 入 っ て い る 。 getauxval(3) も 参 照 。
/proc/[pid]/cgroup
(Linux 2.6.24 以 降 ) こ の フ ァ イ ル は 、 プ ロ セ ス や タ ス ク が 所 属 す る コ ン ト ロ ー ル グ ル ー プ を 示 す 。 cgroup の 各 階 層 に つ い て エ ン ト リ ー が 1 つ あ り 、 各 エ ン ト リ ー は 以 下 の 形 式 の コ ロ ン 区 切 り の フ ィ ー ル ド で 構 成 さ れ る 。

5:cpuacct,cpu,cpuset:/daemons コ ロ ン 区 切 り の 各 フ ィ ー ル ド は 、 左 か ら 右 の 順 で 、 以 下 の 意 味 を 持 つ 。

1. 階 層

ID 番 号

2. そ の 階

層 に 関 連 付 け た サ ブ シ ス テ ム の 集 合

3. プ ロ セ ス が 所 属 す る 階 層 内 の コ ン ト ロ ー ル グ ル ー プ こ の フ ァ イ ル が 存 在 す る の は 、 カ ー ネ ル の コ ン フ ィ ギ ュ レ ー シ ョ ン オ プ シ ョ ン

CONFIG_CGROUPS を 有 効 に し た 場 合 だ け で あ る 。

/proc/[pid]/clear_refs (Linux 2.6.22 以 降 ) こ の フ ァ イ ル は 書 き 込 み 専 用 フ ァ イ ル で 、 書 き 込 め る の は プ ロ セ ス の 所 有 者 だ け で あ る 。 こ の フ ァ イ ル に は 以 下 の 値 を 書 き 込 む こ と が で き る 。

1 (Linux 2.6.22 以 降 )

Reset the PG_Referenced and ACCESSED/YOUNG bits for all the pages associated with the process. (Before kernel 2.6.32, writing any nonzero value to this file had this effect.)

2 (Linux 2.6.32 以 降 )

Reset the PG_Referenced and ACCESSED/YOUNG bits for all anonymous pages associated with the process.

3 (Linux 2.6.32 以 降 )

Reset the PG_Referenced and ACCESSED/YOUNG bits for all file−mapped pages associated with the process.

Clearing the PG_Referenced and ACCESSED/YOUNG bits provides a method to measure approximately how much memory a process is using. One first inspects the values in the "Referenced" fields for the VMAs shown in /proc/[pid]/smaps to get an idea of the memory footprint of the process. One then clears the PG_Referenced and ACCESSED/YOUNG bits and, after some measured time interval, once again inspects the values in the "Referenced" fields to get an idea of the change in memory footprint of the process during the measured interval. If one is interested only in inspecting the selected mapping types, then the value 2 or 3 can be used instead of 1.

A further value can be written to affect a different bit:
4 (Linux 3.11 以 降 )

Clear the soft−dirty bit for all the pages associated with the process. This is used (in conjunction with /proc/[pid]/pagemap) by the check−point restore system to discover which pages of a process have been dirtied since the file /proc/[pid]/clear_refs was written to.

Writing any value to /proc/[pid]/clear_refs other than those listed above has no effect.

/proc/[pid]/clear_refs フ ァ イ ル が 存 在 す る の は 、 カ ー ネ ル の コ ン フ ィ ギ ュ レ ー シ ョ ン オ プ シ ョ ン CONFIG_PROC_PAGE_MONITOR を 有 効 に し た 場 合 だ け で あ る 。

/proc/[pid]/cmdline こ の 読 み 出 し 専 用 の フ ァ イ ル は プ ロ セ ス の 完 全 な コ マ ン ド 行 を 保 持 す る 。 た だ し 、 そ の プ ロ セ ス が ゾ ン ビ プ ロ セ ス の 場 合 は 、 こ の フ ァ イ ル は 空 と な る 。 つ ま り 、 こ の フ ァ イ ル を 読 み 出 し て も 一 文 字 も 返 ら な い 。 こ の フ ァ イ ル で は コ マ ン ド ラ イ ン 引 き 数 が 、 ヌ ル バ イ ト ('\0') で 区 切 ら れ た 文 字 列 と し て 書 か れ て お り 、 最 後 の 文 字 列 の 後 に ヌ ル バ イ ト が 一 つ 置 か れ る 。
/proc/[pid]/comm
(Linux 2.6.33 以 降 )

This file exposes the process’s comm value—that is, the command name associated with the process. Different threads in the same process may have different comm values, accessible via /proc/[pid]/task/[tid]/comm. A thread may modify its comm value, or that of any of other thread in the same thread group (see the discussion of CLONE_THREAD in clone(2)), by writing to the file /proc/self/task/[tid]/comm. Strings longer than TASK_COMM_LEN (16) characters are silently truncated.

This file provides a superset of the prctl(2) PR_SET_NAME and PR_GET_NAME operations, and is employed by pthread_setname_np(3) when used to rename threads other than the caller.

/proc/[pid]/coredump_filter (Linux 2.6.23 以 降 )

core(5) 参 照 。

/proc/[pid]/cpuset (Linux 2.6.12 以 降 )

cpuset(7) 参 照 。

/proc/[pid]/cwd プ ロ セ ス の カ レ ン ト ワ ー キ ン グ デ ィ レ ク ト リ へ の シ ン ボ リ ッ ク リ ン ク 。 例 え ば 、 プ ロ セ ス 20 の カ レ ン ト ワ ー キ ン グ デ ィ レ ク ト リ を 見 つ け る た め に は 、 次 の よ う に す れ ば よ い 。

$ cd /proc/20/cwd; /bin/pwd

pwd コ マ ン ド は シ ェ ル の 内 部 コ マ ン ド の こ と が よ く あ り 、 う ま く 動 作 し な い か も し れ な い 。 bash(1) で は pwd −P を 使 っ て も よ い 。 マ ル チ ス レ ッ ド プ ロ セ ス で は 、 メ イ ン ス レ ッ ド が す で に 終 了 し て い る 場 合 、 こ の シ ン ボ リ ッ ク リ ン ク の 内 容 は 参 照 で き な い (ス レ ッ ド の 終 了 は 通 常 pthread_exit(3) を 呼 び 出 し に よ り 行 わ れ る )。

/proc/[pid]/environ こ の フ ァ イ ル は プ ロ セ ス の 環 境 変 数 を 含 ん で い る 。 各 エ ン ト リ ー は ヌ ル バ イ ト ('\0') で 区 切 ら れ て い て 、 末 尾 に ヌ ル バ イ ト が あ る か も し れ な い 。 し た が っ て 、 プ ロ セ ス 1 の 環 境 変 数 を 表 示 す る た め に は 次 の よ う に す れ ば よ い 。

$ strings /proc/1/environ

/proc/[pid]/exe

Linux 2.2 以 降 で は 、 こ の フ ァ イ ル は シ ン ボ リ ッ ク リ ン ク で 、 実 行 可 能 コ マ ン ド の 実 際 の パ ス 名 を 格 納 し て い る 。 こ の シ ン ボ リ ッ ク リ ン ク は 通 常 の よ う に 辿 る こ と が で き る ; こ れ を オ ー プ ン す る と 実 行 可 能 フ ァ イ ル が オ ー プ ン さ れ る 。 (コ マ ン ド ラ イ ン で ) /proc/[pid]/exe と 入 力 す る と 、 プ ロ セ ス 番 号 [pid] で 実 行 さ れ て い る 実 行 可 能 フ ァ イ ル を も う 一 つ 実 行 す る こ と が で き る 。 マ ル チ ス レ ッ ド プ ロ セ ス で は 、 メ イ ン ス レ ッ ド が す で に 終 了 し て い る 場 合 、 こ の シ ン ボ リ ッ ク リ ン ク の 内 容 は 参 照 で き な い (ス レ ッ ド の 終 了 は 通 常 pthread_exit(3) を 呼 び 出 し に よ り 行 わ れ る )。

Linux 2.0 以 前 で は 、 /proc/[pid]/exe は 実 行 さ れ た バ イ ナ リ へ の ポ イ ン タ ー で 、 シ ン ボ リ ッ ク リ ン ク の よ う に 見 え る 。 Linux 2.0 以 前 で は 、 こ の フ ァ イ ル に 対 し て readlink(2) を 実 行 す る と 、 次 の フ ォ ー マ ッ ト の 文 字 列 が 返 る 。

[デ バ イ ス 番 号 ]:iノ ー ド 番 号 た と え ば 、 [0301]:1502 は メ ジ ャ ー デ バ イ ス 番 号 03 (IDE, MFM な ど の ド ラ イ ブ ) マ イ ナ ー デ バ イ ス 番 号 01 (最 初 の ド ラ イ ブ の 最 初 の パ ー テ ィ シ ョ ン ) の デ バ イ ス 上 の iノ ー ド 番 号 1502 で あ る 。

−inum オ プ シ ョ ン を つ け て find(1) を 使 う と 、 こ の フ ァ イ ル の 所 在 を 探 す こ と が で き る 。

/proc/[pid]/fd/ プ ロ セ ス が オ ー プ ン し た フ ァ イ ル 各 々 に 対 す る エ ン ト リ ー を 含 む サ ブ デ ィ レ ク ト リ 。 フ ァ イ ル デ ィ ス ク リ プ タ ー が フ ァ イ ル 名 で 、 実 際 の フ ァ イ ル へ の シ ン ボ リ ッ ク リ ン ク に な っ て い る 。 し た が っ て 0 は 標 準 入 力 、 1 は 標 準 出 力 、 2 は 標 準 エ ラ ー 出 力 、 な ど と な る 。 パ イ プ や ソ ケ ッ ト の フ ァ イ ル デ ィ ス ク リ プ タ ー で は 、 エ ン ト リ ー は フ ァ イ ル 種 別 が inode と い う 内 容 を 持 つ シ ン ボ リ ッ ク リ ン ク と な る 。 こ の フ ァ イ ル に 対 し て readlink(2) を 呼 び 出 す と 以 下 の 形 式 の 文 字 列 が 返 る 。

type:[inode] 例 え ば 、 socket:[2248868] は inode が 2248868 の ソ ケ ッ ト で あ る 。 ソ ケ ッ ト の 場 合 、 そ の inode を 元 に /proc/net/ 以 下 の フ ァ イ ル を 参 照 し 詳 し い 情 報 を 得 る こ と が で き る 。 対 応 す る inode が な い フ ァ イ ル デ ィ ス ク リ プ タ ー (例 え ば epoll_create(2), eventfd(2), inotify_init(2), signalfd(2), timerfd(2) に よ り 生 成 さ れ た フ ァ イ ル デ ィ ス ク リ プ タ ー ) で は 、 エ ン ト リ ー は そ の 内 容 が 以 下 の 形 式 の シ ン ボ リ ッ ク リ ン ク と な る 。

anon_inode:<file−type>

file−type は 角 括 弧 で 囲 ま れ る 場 合 が あ る 。 例 え ば 、 epoll フ ァ イ ル デ ィ ス ク リ プ タ ー は 、 内 容 が 文 字 列 anon_inode:[eventpoll] の シ ン ボ リ ッ ク リ ン ク を 持 つ 場 合 が あ る 。 マ ル チ ス レ ッ ド プ ロ セ ス で は 、 メ イ ン ス レ ッ ド が す で に 終 了 し て い る 場 合 、 こ の デ ィ レ ク ト リ の 内 容 は 参 照 で き な い (ス レ ッ ド の 終 了 は 通 常 pthread_exit(3) を 呼 び 出 し に よ り 行 わ れ る )。 コ マ ン ド ラ イ ン 引 き 数 と し て フ ァ イ ル 名 を 受 け 取 る が 、 引 き 数 が 渡 さ れ な か っ た 場 合 に 標 準 入 力 か ら 入 力 を 受 け 取 ら な い よ う な プ ロ グ ラ ム や 、 コ マ ン ド ラ イ ン 引 き 数 と し て 書 き 込 み フ ァ イ ル を 受 け 取 る が 、 引 き 数 が 渡 さ れ な か っ た 場 合 に 標 準 出 力 に 出 力 を 行 わ な い よ う な プ ロ グ ラ ム で あ っ て も 、 /proc/[pid]/fd を 使 う こ と で 標 準 入 力 や 標 準 出 力 を 使 用 で き る よ う に な る 。 例 え ば 、 −i を 入 力 フ ァ イ ル を 指 定 す る フ ラ グ 、 −o を 出 力 フ ァ イ ル を 指 定 す る フ ラ グ と 仮 定 す る と 、

$ foobar −i /proc/self/fd/0 −o /proc/self/fd/1 ... を 実 行 す る こ と に よ り 、 フ ィ ル タ と し て 動 作 さ せ る こ と が で き る 。

/proc/self/fd/N は 、 あ る 種 の UNIX や UNIX 風 の シ ス テ ム に あ る /dev/fd/N と だ い た い 同 じ で あ る 。 事 実 Linux の た い て い の MAKEDEV ス ク リ プ ト は 、 /dev/fd/proc/self/fd へ の シ ン ボ リ ッ ク リ ン ク に し て い る 。 ほ と ん ど の シ ス テ ム で は 、 シ ン ボ リ ッ ク リ ン ク /dev/stdin, /dev/stdout, /dev/stderr が 提 供 さ れ て お り 、 そ れ ぞ れ /proc/self/fd 内 の フ ァ イ ル 0, 1, 2 に リ ン ク さ れ て い る 。 し た が っ て 、 上 述 の サ ン プ ル コ マ ン ド は 次 の よ う に も 書 く こ と が で き る 。

$ foobar −i /dev/stdin −o /dev/stdout ...

/proc/[pid]/fdinfo/ (Linux 2.6.22 以 降 ) こ の サ ブ デ ィ レ ク ト リ に は 、 そ の プ ロ セ ス が オ ー プ ン し て い る フ ァ イ ル 毎 の エ ン ト リ ー が 入 っ て お り 、 フ ァ イ ル デ ィ ス ク リ プ タ ー が フ ァ イ ル 名 と な っ て い る 。 各 フ ァ イ ル の 内 容 を 読 み 出 す こ と で 、 対 応 す る フ ァ イ ル デ ィ ス ク リ プ タ ー に 関 す る 情 報 を 得 る こ と が で き る 。 以 下 に 例 を 示 す 。

$ cat /proc/12015/fdinfo/4
pos: 1000
flags: 01002002

pos フ ィ ー ル ド は 10 進 数 で 、 現 在 の フ ァ イ ル オ フ セ ッ ト を 示 す 。 flags フ ィ ー ル ド は 8 進 数 で 、 フ ァ イ ル の ア ク セ ス モ ー ド と フ ァ イ ル 状 態 フ ラ グ を 示 す (open(2) 参 照 )。 こ の デ ィ レ ク ト リ の フ ァ イ ル は 、 プ ロ セ ス の 所 有 者 だ け が 読 み 出 す こ と が で き る 。

/proc/[pid]/io (kernel 2.6.20 以 降 ) こ の フ ァ イ ル は 、 プ ロ セ ス の I/O 統 計 情 報 を 表 示 す る 。 以 下 に 例 を 挙 げ る 。

# cat /proc/3828/io
rchar: 323934931
wchar: 323929600
syscr: 632687
syscw: 632675
read_bytes: 0
write_bytes: 323932160
cancelled_write_bytes: 0 フ ィ ー ル ド の 詳 細 は 以 下 の 通 り で あ る 。

rchar: 読 み 出 し 文 字 数 こ の タ ス ク が き っ か け で ス ト レ ー ジ か ら 読 み 出 さ れ た バ イ ト 数 。 こ の 値 は 、 単 純 に read(2) や 同 様 の シ ス テ ム コ ー ル か ら こ の プ ロ セ ス に 渡 さ れ た バ イ ト 数 の 合 計 で あ る 。 こ の 値 に は 、 端 末 入 出 力 な ど も 含 ま れ 、 実 際 に 物 理 デ ィ ス ク I/O が 必 要 で あ っ た か (読 み 出 し が ペ ー ジ キ ャ ッ シ ュ か ら の 読 み 出 し で 十 分 で あ っ た か ) ど う か は 関 係 な い 。
wchar
: 書 き 込 み 文 字 数 こ の タ ス ク が き っ か け で 行 わ れ た か 行 わ れ る は ず の デ ィ ス ク へ の 書 き 込 み バ イ ト 数 。 rchar と 同 じ 注 意 が あ て は ま る 。
syscr
: 読 み 出 し シ ス テ ム コ ー ル 数 読 み 出 し I/O 操 作 —read(2) や pread(29 な ど の シ ス テ ム コ ー ル —を 試 み た 回 数 。
syscw
: 書 き 込 み シ ス テ ム コ ー ル 数 書 き 込 み I/O 操 作 —write(2) や pwrite(29 な ど の シ ス テ ム コ ー ル —を 試 み た 回 数 。
read_bytes
: 読 み 出 し バ イ ト 数 こ の プ ロ セ ス が 実 際 に ス ト レ ー ジ 層 か ら 取 得 し よ う と し た バ イ ト 数 。 ブ ロ ッ ク デ バ イ ス 上 の フ ァ イ ル シ ス テ ム で は 正 確 な 値 と な る 。
write_bytes
: 書 き 込 み バ イ ト 数 こ の プ ロ セ ス が 実 際 に ス ト レ ー ジ 層 に 転 送 し よ う と し た バ イ ト 数 。
cancelled_write_bytes
:

The big inaccuracy here is truncate. If a process writes 1MB to a file and then deletes the file, it will in fact perform no writeout. But it will have been accounted as having caused 1MB of write. In other words: this field represents the number of bytes which this process caused to not happen, by truncating pagecache. A task can cause "negative" I/O too. If this task truncates some dirty pagecache, some I/O which another task has been accounted for (in its write_bytes) will not be happening. 注 意 : 現 在 の 実 装 で は 32 ビ ッ ト シ ス テ ム で は 少 し い や ら し い 点 が あ る 。 プ ロ セ ス B が 64 ビ ッ ト カ ウ ン タ ー の 一 つ を 更 新 し て い る 途 中 に 、 プ ロ セ ス A が プ ロ セ ス B の /proc/[pid]/io を 読 ん だ 場 合 、 プ ロ セ ス A に 更 新 中 の 結 果 が 見 え る こ と が あ る 。

/proc/[pid]/gid_map (Linux 3.5 以 降 )

/proc/[pid]/uid_map の 説 明 を 参 照 す る こ と 。

/proc/[pid]/limits (Linux 2.6.24 以 降 ) こ の フ ァ イ ル は 、 そ の プ ロ セ ス の 各 リ ソ ー ス 制 限 に つ い て 、 ソ フ ト リ ミ ッ ト 、 ハ ー ド リ ミ ッ ト 、 計 測 単 位 を 表 示 す る (getrlimit(2) 参 照 )。 Linux 2.6.35 以 前 で は 、 プ ロ セ ス の 実 UID を 持 つ プ ロ セ ス だ け が 、 こ の フ ァ イ ル を 読 み 出 す こ と が で き る 。 Linux 2.6.36 以 降 で は 、 シ ス テ ム 上 の す べ て の ユ ー ザ ー が こ の フ ァ イ ル を 読 み 出 す こ と が で き る 。
/proc/[pid]/map_files/
(kernel 3.3 以 降 ) こ の サ ブ デ ィ レ ク ト リ に は 、 メ モ リ ー マ ッ プ さ れ た フ ァ イ ル に 対 応 す る エ ン ト リ ー が 置 か れ る (mmap(2) 参 照 )。 エ ン ト リ ー の 名 前 が メ モ リ ー 領 域 の (16 進 数 表 現 の ) 開 始 ア ド レ ス と 終 了 ア ド レ ス の 組 で 、 エ ン ト リ ー は マ ッ プ さ れ て い る フ ァ イ ル へ の シ ン ボ リ ッ ク リ ン ク で あ る 。 以 下 に 例 を 示 す 。 な お 、 出 力 は 幅 が 80 文 字 の デ ィ ス プ レ イ に 合 う よ う に 折 り 返 し て 整 形 さ れ て い る 。

$ ls −l /proc/self/map_files/
lr−−−−−−−−. 1 root root 64 Apr 16 21:31
3252e00000−3252e20000 −> /usr/lib64/ld−2.15.so
... こ れ ら の エ ン ト リ ー が 存 在 す る の は MAP_FILE フ ラ グ で マ ッ ピ ン グ さ れ た メ モ リ ー 領 域 に つ い て で あ る が 、 Linux で の 無 名 の 共 有 メ モ リ ー (MAP_ANON | MAP_SHARED で 作 成 さ れ た 領 域 ) の 実 装 方 法 で は 、 こ の デ ィ レ ク ト リ に 無 名 の 共 有 メ モ リ ー に 関 す る エ ン ト リ ー も 存 在 す る 。 以 下 は 、 マ ッ ピ ン グ 元 の フ ァ イ ル が 削 除 さ れ た /dev/zero フ ァ イ ル で の 例 で あ る 。

lrw−−−−−−−. 1 root root 64 Apr 16 21:33
7fc075d2f000−7fc075e6f000 −> /dev/zero (deleted) こ の デ ィ レ ク ト リ が 存 在 す る の は 、 カ ー ネ ル の コ ン フ ィ ギ ュ レ ー シ ョ ン オ プ シ ョ ン CONFIG_CHECKPOINT_RESTORE が 有 効 に な っ て い る 場 合 だ け で あ る 。

/proc/[pid]/maps 現 在 マ ッ ピ ン グ さ れ て い る メ モ リ ー 領 域 と そ の ア ク セ ス パ ー ミ ッ シ ョ ン を 含 む 。 メ モ リ ー マ ッ ピ ン グ に つ い て の 詳 し い 情 報 は mmap(2) を 参 照 。 フ ァ イ ル の フ ォ ー マ ッ ト は 以 下 の と お り :

address perms offset dev inode pathname
00400000−00452000 r−xp 00000000 08:02 173521 /usr/bin/dbus−daemon
00651000−00652000 r−−p 00051000 08:02 173521 /usr/bin/dbus−daemon
00652000−00655000 rw−p 00052000 08:02 173521 /usr/bin/dbus−daemon
00e03000−00e24000 rw−p 00000000 00:00 0 [heap]
00e24000−011f7000 rw−p 00000000 00:00 0 [heap]
...
35b1800000−35b1820000 r−xp 00000000 08:02 135522 /usr/lib64/ld−2.15.so
35b1a1f000−35b1a20000 r−−p 0001f000 08:02 135522 /usr/lib64/ld−2.15.so
35b1a20000−35b1a21000 rw−p 00020000 08:02 135522 /usr/lib64/ld−2.15.so
35b1a21000−35b1a22000 rw−p 00000000 00:00 0
35b1c00000−35b1dac000 r−xp 00000000 08:02 135870 /usr/lib64/libc−2.15.so
35b1dac000−35b1fac000 −−−p 001ac000 08:02 135870 /usr/lib64/libc−2.15.so
35b1fac000−35b1fb0000 r−−p 001ac000 08:02 135870 /usr/lib64/libc−2.15.so
35b1fb0000−35b1fb2000 rw−p 001b0000 08:02 135870 /usr/lib64/libc−2.15.so
...
f2c6ff8c000−7f2c7078c000 rw−p 00000000 00:00 0 [stack:986]
...
7fffb2c0d000−7fffb2c2e000 rw−p 00000000 00:00 0 [stack]
7fffb2d48000−7fffb2d49000 r−xp 00000000 00:00 0 [vdso]

address フ ィ ー ル ド は 、 そ の マ ッ ピ ン グ が 占 め て い る プ ロ セ ス の ア ド レ ス 空 間 で あ る 。 perms フ ィ ー ル ド は パ ー ミ ッ シ ョ ン の セ ッ ト で あ る 。

r = read
w = write
x = execute
s = shared
p = private (copy on write)

offset は フ ァ イ ル (な ど の ) 中 で の オ フ セ ッ ト 、 dev は デ バ イ ス (メ ジ ャ ー デ バ イ ス 番 号 :マ イ ナ ー デ バ イ ス 番 号 )、 inode は そ の デ バ イ ス の i ノ ー ド 番 号 で あ る 。 0 は 、 BSS (初 期 化 さ れ て い な い デ ー タ 領 域 ) の 場 合 の よ う に 、 こ の メ モ リ ー 領 域 は ど の i ノ ー ド と も 関 連 付 け ら れ て い な い こ と を 意 味 す る 。

pathname フ ィ ー ル ド は 、 通 常 そ の マ ッ ピ ン グ に 対 応 す る フ ァ イ ル で あ る 。 ELF フ ァ イ ル の 場 合 、 ELF プ ロ グ ラ ム ヘ ッ ダ ー の Offset フ ィ ー ル ド を 見 る こ と で (readelf −l))、 簡 単 に offset と の 対 応 付 け を す る こ と が で き る 。 こ れ に 加 え 、 役 に 立 つ 擬 似 パ ス 名 が あ る 。

[stack] 初 期 プ ロ セ ス の ス タ ッ ク (初 期 プ ロ セ ス は メ イ ン ス レ ッ ド と も 呼 ば れ る )。
[stack:<tid>]
(Linux 3.4 以 降 ) ス レ ッ ド の ス タ ッ ク (<tid> は ス レ ッ ド ID で あ る )。 パ ス /proc/[pid]/task/[tid]/ に 対 応 す る 。

(virtual

[vdso] 動 的 に リ ン ク さ れ る 仮 想 共 有 オ ブ ジ ェ ク ト

dynamically linked shared object)。

[heap] プ ロ セ ス の ヒ ー プ 。

pathname が 空 の 場 合 、 そ の 領 域 は mmap(2) を 使 っ て 確 保 さ れ た 無 名 マ ッ ピ ン グ で あ る 。 gdb(1), strace(1) な ど を 使 っ て プ ロ セ ス を 実 行 し な い 限 り 、 こ の 領 域 を プ ロ セ ス の ソ ー ス と 対 応 付 け る 簡 単 な 方 法 は な い 。

Linux 2.0 で は パ ス 名 を 書 い た フ ィ ー ル ド が な い 。

/proc/[pid]/mem こ の フ ァ イ ル は 、 open(2), read(2), lseek(2) を 通 し て 、 プ ロ セ ス の メ モ リ ー の ペ ー ジ に ア ク セ ス す る た め に 使 わ れ る 。
/proc/[pid]/mountinfo
(Linux 2.6.26 以 降 ) こ の フ ァ イ ル に は 、 マ ウ ン ト ポ イ ン ト に つ い て の 情 報 が 入 っ て い る 。 以 下 の よ う な 形 式 の 行 か ら 構 成 さ れ る 。

36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 − ext3 /dev/root rw,errors=continue
(1)(2)(3)   (4)   (5)      (6)      (7)   (8) (9)   (10)         (11)括 弧 付 き の 数 字 は 、 以 下 の 説 明 の た め の も の で あ る 。

(1) マ ウ ン ト

ID: マ ウ ン ト の 一 意 な 識 別 子 (umount(2) の 後 は 再 利

用 さ れ る か も し れ な い )。

(2)

parent ID: 親 マ ウ ン ト の ID (マ ウ ン ト ツ リ ー の 最 上 位 の 場 合 は 自 分 自 身 の ID と な る )。

(3)

major:minor: フ ァ イ ル シ ス テ ム 上 の フ ァ イ ル の st_dev の 値 (stat(2) 参 照 )。

(4)

ル ー ト : そ の フ ァ イ ル シ ス テ ム 内 の マ ウ ン ト の ル ー ト 。

(5) マ ウ ン ト ポ イ ン ト : マ ウ ン ト ポ イ ン ト の そ の プ ロ セ ス の ル ー ト か ら の 相 対 パ ス 。

(6) マ ウ ン ト オ プ シ ョ ン : 各 マ ウ ン ト の オ プ シ ョ ン 。

(7) オ プ シ ョ ン フ ィ ー ル ド :

"tag[:value]" 形 式 の フ ィ ー ル ド が 0 個 以 上 並 ぶ 。

(8) セ パ レ ー タ : オ プ シ ョ ン フ ィ ー ル ド の 終 わ り を 示 す 。

(9) フ ァ イ ル シ ス テ ム 種 別 : フ ァ イ ル シ ス テ ム の 名 前 。

"type[.subtype]" と い う 形 式 と な る 。

(10) マ ウ ン ト 元 : フ ァ イ ル シ ス テ ム 固 有 の 情 報 。 な い 場 合 は

"none"

と な る 。

(11)

super options: ス ー パ ー ブ ロ ッ ク 単 位 の オ プ シ ョ ン 。

解 釈 す る 側 は 認 識 で き な い オ プ シ ョ ン フ ィ ー ル ド は 全 て 無 視 す べ き で あ る 。 現 在 の と こ ろ 、 オ プ シ ョ ン フ ィ ー ル ド と し て は 以 下 の よ う な も の が あ る 。

shared:X マ ウ ン ト は ピ ア グ ル ー プ

(peer group) X で

共 有 さ れ て い る 。

master:X マ ウ ン ト は ピ ア グ ル ー プ

(peer group) X の

ス レ ー ブ で あ る 。

propagate_from:X マ ウ ン ト は ス レ ー ブ で あ り 、 ピ ア グ ル ー プ

X

(*) か ら mount propagation を 受 信 す る 。

unbindable マ ウ ン ト は

unbind で き な い 。

(*) X は 、 プ ロ セ ス の root で 直 近 の dominant peer group で あ る 。 X が マ ウ ン ト の 直 接 の マ ス タ ー で あ る 場 合 や 、 同 じ root に dominant peer group が な い 場 合 は 、 "master:X" フ ィ ー ル ド だ け が 存 在 し 、 "propagate_from:X" フ ィ ー ル ド は 存 在 し な い 。

mount propagation の 詳 細 に つ い て は 、 Linux カ ー ネ ル ソ ー ス ツ リ ー 内 の Documentation/filesystems/sharedsubtree.txt を 参 照 。

/proc/[pid]/mounts (Linux 2.4.19 以 降 ) そ の プ ロ セ ス の マ ウ ン ト 名 前 空 間 に 現 在 マ ウ ン ト さ れ て い る 全 フ ァ イ ル シ ス テ ム の リ ス ト 。 こ の フ ァ イ ル の フ ォ ー マ ッ ト は fstab(5) に 載 っ て い る 。 カ ー ネ ル 2.6.15 以 降 で は 、 こ の フ ァ イ ル を 監 視 す る こ と が で き る (pollable)。 こ の フ ァ イ ル を 読 み 出 し 用 に オ ー プ ン し た 後 で 、 こ の フ ァ イ ル に 変 更 が あ る と (つ ま り フ ァ イ ル シ ス テ ム の マ ウ ン ト や ア ン マ ウ ン ト が あ る と )、 select(2) で は そ の フ ァ イ ル デ ィ ス ク リ プ タ ー は 読 み 出 し 可 能 と な り 、 poll(2)epoll_wait(2) で は そ の フ ァ イ ル は エ ラ ー 状 態 と し て 通 知 さ れ る 。 詳 細 は namespaces(7) を 参 照 。
/proc/[pid]/mountstats
(Linux 2.6.17 以 降 ) こ の フ ァ イ ル を 通 じ て 、 そ の プ ロ セ ス の マ ウ ン ト 名 前 空 間 内 の マ ウ ン ト ポ イ ン ト に 関 す る 各 種 情 報 (統 計 、 設 定 情 報 ) を 参 照 で き る 。 フ ァ イ ル の 各 行 は 以 下 の フ ォ ー マ ッ ト で あ る 。

device /dev/sda7 mounted on /home with fstype ext3 [statistics]
( 1 ) ( 2 ) (3 ) (4) 各 行 の フ ィ ー ル ド は 以 下 の 通 り で あ る 。

(1) マ ウ ン ト さ れ て い る デ バ イ ス 名

(対 応 す る デ バ イ ス が な い 場 合 は

"nodevice" と な る )。

(2) マ ウ ン ト ポ イ ン ト の フ ァ イ ル シ ス テ ム ツ リ ー に お け る パ ス 名 。

(3) フ ァ イ ル シ ス テ ム 種 別 。

(4) 追 加 の 統 計 や 設 定 情 報 。 現 在 の と こ ろ

(Linux 2.6.26 時 点 で は )、 こ の フ ィ ー ル ド で 情 報 が 提 供 さ れ て い る の は NFS フ ァ イ ル シ ス テ ム だ け で あ る 。 こ の フ ァ イ ル は プ ロ セ ス の 所 有 者 だ け が 読 み 出 す こ と が で き る 。 詳 し い 情 報 は namespaces(7) を 参 照 。

/proc/[pid]/ns/ (Linux 3.0 以 降 ) こ の サ ブ デ ィ レ ク ト リ に は 、 名 前 空 間 毎 に 1 エ ン ト リ ー が 置 か れ る 。 各 エ ン ト リ ー は setns(2) に よ る 操 作 を サ ポ ー ト し て い る 。 詳 細 な 情 報 は namespaces(7) を 参 照 。
/proc/[pid]/numa_maps
(Linux 2.6.14 以 降 )

numa(7) を 参 照 。

/proc/[pid]/oom_adj (Linux 2.6.11 以 降 ) こ の フ ァ イ ル は 、 メ モ リ ー 不 足 (OOM) の 状 況 下 で ど の プ ロ セ ス を 殺 す べ き か を 選 択 す る の に 使 用 さ れ る ス コ ア を 調 整 す る の に 使 用 さ れ る 。 カ ー ネ ル は 、 プ ロ セ ス の oom_score 値 の ビ ッ ト シ フ ト 操 作 に 、 こ の 値 を 使 用 す る 。 こ の 値 と し て 有 効 な 値 は −16 か ら +15 ま で と 、 特 別 な 意 味 を 持 つ −17 で あ る 。 −17 は そ の プ ロ セ ス に 対 す る OOM−killing を 完 全 に 無 効 に す る こ と を 意 味 す る 。 正 の 値 ほ ど 、 そ の プ ロ セ ス が OOM−killer に よ り 殺 さ れ る 可 能 性 が 高 く な り 、 負 の 値 ほ ど 可 能 性 が 低 く な る 。 こ の フ ァ イ ル の デ フ ォ ル ト 値 は 0 で あ る 。 新 し い プ ロ セ ス は 親 プ ロ セ ス の oom_adj の 設 定 を 継 承 す る 。 こ の フ ァ イ ル を 変 更 す る た め に は 、 プ ロ セ ス は 特 権 (CAP_SYS_RESOURCE) を 持 っ て い な け れ ば な ら な い 。

Linux 2.6.36 以 降 で は 、 こ の フ ァ イ ル の 使 用 は 非 推 奨 と さ れ 、 代 わ り に /proc/[pid]/oom_score_adj が 推 奨 さ れ て い る 。

/proc/[pid]/oom_score (Linux 2.6.11 以 降 ) こ の フ ァ イ ル は 、 OOM−killer の プ ロ セ ス 選 択 用 と し て 、 カ ー ネ ル が こ の プ ロ セ ス に 対 し て 与 え た 現 在 の ス コ ア を 表 示 す る 。 高 い ス コ ア は 、 そ の プ ロ セ ス が OOM−killer に よ り 選 択 さ れ る 可 能 性 が 高 い こ と を 意 味 す る 。 こ の ス コ ア の 基 本 は そ の プ ロ セ ス が 使 用 し て い る メ モ リ ー 量 で あ り 、 以 下 の 要 因 に よ り 加 算 (+) 減 算 (−) が 行 わ れ る 。

* そ の プ ロ セ ス が 多 く の 子 プ ロ セ ス を

fork(2) を 使 っ て 作 成 し て い る

か (+)。

* そ の プ ロ セ ス が 長 時 間 実 行 さ れ て 来 た か 、 も し く は 多 く の

CPU 時

間 を 使 用 し て い る か (−)。

* そ の プ ロ セ ス が 低 い

nice 値 (> 0) を 持 っ て い る か (+)。

* そ の プ ロ セ ス が 特 権 を

持 っ て い る か (−)。
* そ の プ ロ セ ス が direct hardware access を 行 っ て い る か (−)。

oom_score は 、 そ の プ ロ セ ス の oom_score_adjoom_adj 設 定 で 規 定 さ れ る 調 整 に も 影 響 を 与 え る 。

/proc/[pid]/oom_score_adj (Linux 2.6.36 以 降 )

This file can be used to adjust the badness heuristic used to select which process gets killed in out−of−memory conditions.

The badness heuristic assigns a value to each candidate task ranging from 0 (never kill) to 1000 (always kill) to determine which process is targeted. The units are roughly a proportion along that range of allowed memory the process may allocate from, based on an estimation of its current memory and swap use. For example, if a task is using all allowed memory, its badness score will be 1000. If it is using half of its allowed memory, its score will be 500.

There is an additional factor included in the badness score: root processes are given 3% extra memory over other tasks.

The amount of "allowed" memory depends on the context in which the OOM−killer was called. If it is due to the memory assigned to the allocating task’s cpuset being exhausted, the allowed memory represents the set of mems assigned to that cpuset (see cpuset(7)). If it is due to a mempolicy’s node(s) being exhausted, the allowed memory represents the set of mempolicy nodes. If it is due to a memory limit (or swap limit) being reached, the allowed memory is that configured limit. Finally, if it is due to the entire system being out of memory, the allowed memory represents all allocatable resources.

The value of oom_score_adj is added to the badness score before it is used to determine which task to kill. Acceptable values range from −1000 (OOM_SCORE_ADJ_MIN) to +1000 (OOM_SCORE_ADJ_MAX). This allows user space to control the preference for OOM−killing, ranging from always preferring a certain task or completely disabling it from OOM killing. The lowest possible value, −1000, is equivalent to disabling OOM−killing entirely for that task, since it will always report a badness score of 0.

Consequently, it is very simple for user space to define the amount of memory to consider for each task. Setting a oom_score_adj value of +500, for example, is roughly equivalent to allowing the remainder of tasks sharing the same system, cpuset, mempolicy, or memory controller resources to use at least 50% more memory. A value of −500, on the other hand, would be roughly equivalent to discounting 50% of the task’s allowed memory from being considered as scoring against the task.

For backward compatibility with previous kernels, /proc/[pid]/oom_adj can still be used to tune the badness score. Its value is scaled linearly with oom_score_adj.

Writing to /proc/[pid]/oom_score_adj or /proc/[pid]/oom_adj will change the other with its scaled value.

/proc/[pid]/pagemap (Linux 2.6.25 以 降 ) こ の フ ァ イ ル は 、 プ ロ セ ス の 各 仮 想 ペ ー ジ の 物 理 ペ ー ジ フ レ ー ム や ス ワ ッ プ 領 域 へ の マ ッ ピ ン グ を 表 示 す る 。 各 仮 想 ペ ー ジ に 64 ビ ッ ト の 値 1 つ が 対 応 し 、 各 ビ ッ ト は 以 下 の と お り で あ る 。

63 セ ッ ト さ れ て い る 場 合 、 こ の ペ ー ジ は

RAM に 存 在 す る 。

62 セ ッ ト さ れ て い る 場 合 、 こ の ペ ー ジ は ス

ワ ッ プ 領 域 に 存 在 す る 。

61 (Linux 3.5 以 降 ) こ の ペ ー ジ は フ ァ イ ル マ ッ プ さ れ た ペ ー ジ か 共 有 無 名 ペ ー ジ で あ る 。

60−56 (Linux 3.11 以 降 ) ゼ ロ 。
55 (Linux 3.11 以 降 )

PTE が soft−dirty で あ る (カ ー ネ ル の ソ ー ス フ ァ イ ル Documentation/vm/soft−dirty.txt を 参 照 )。

54−0 こ の ペ ー ジ が

RAM に 存 在 す る 場 合 (ビ ッ ト 63)、 こ れ ら

の ビ ッ ト は ペ ー ジ フ レ ー ム 番 号 を 示 す 。 こ の ペ ー ジ フ レ ー ム 番 号 は /proc/kpageflags/proc/kpagecount の イ ン デ ッ ク ス に 使 用 で き る 。 こ の ペ ー ジ が ス ワ ッ プ に 存 在 す る 場 合 (ビ ッ ト 62)、 ビ ッ ト 4−0 は ス ワ ッ プ 種 別 を 示 し 、 ビ ッ ト 54−5 は ス ワ ッ プ オ フ セ ッ ト を 示 す 。

Linux 3.11 よ り 前 で は 、 ビ ッ ト 60−55 は ペ ー ジ サ イ ズ の 基 数 2 の log を 示 す の に 使 わ れ て い た 。

/proc/[pid]/pagemap を 効 率 的 に 活 用 す る に は 、 /proc/[pid]/maps を 使 っ て メ モ リ ー の ど の 領 域 が 実 際 に マ ッ プ さ れ て い る か を 判 断 し 、 seek で マ ッ プ さ れ て い な い 領 域 を ス キ ッ プ す る の が よ い 。

/proc/[pid]/pagemap フ ァ イ ル が 存 在 す る の は 、 カ ー ネ ル の コ ン フ ィ ギ ュ レ ー シ ョ ン オ プ シ ョ ン CONFIG_PROC_PAGE_MONITOR を 有 効 に し た 場 合 だ け で あ る 。

/proc/[pid]/personality (Linux 2.6.28 以 降 )

This read−only file exposes the process’s execution domain, as set by personality(2). The value is displayed in hexadecimal notation.

/proc/[pid]/root

UNIX と Linux で は 、 フ ァ イ ル シ ス テ ム の ル ー ト (/) を プ ロ セ ス ご と に 別 々 に で き る 。 こ れ は シ ス テ ム コ ー ル chroot(2) に よ っ て 設 定 す る 。 こ の フ ァ イ ル は プ ロ セ ス の ル ー ト デ ィ レ ク ト リ を 指 す シ ン ボ リ ッ ク リ ン ク で 、 exefd/* な ど と 同 じ よ う な 動 作 を す る 。 マ ル チ ス レ ッ ド プ ロ セ ス で は 、 メ イ ン ス レ ッ ド が す で に 終 了 し て い る 場 合 、 こ の シ ン ボ リ ッ ク リ ン ク の 内 容 は 参 照 で き な い (ス レ ッ ド の 終 了 は 通 常 pthread_exit(3) を 呼 び 出 し に よ り 行 わ れ る )。

/proc/[pid]/smaps (Linux 2.6.14 以 降 ) こ の フ ァ イ ル は 、 そ の プ ロ セ ス の 各 マ ッ ピ ン グ の メ モ リ ー 消 費 量 を 表 示 す る (pmap(1) コ マ ン ド は 解 析 し や す い で あ ろ う 形 式 で 同 様 の 情 報 を 表 示 す る )。 マ ッ ピ ン グ の そ れ ぞ れ に つ い て 、 以 下 の よ う な 内 容 が 表 示 さ れ る 。

00400000−0048a000 r−xp 00000000 fd:03 960637 /bin/bash
Size: 552 kB
Rss: 460 kB
Pss: 100 kB
Shared_Clean: 452 kB
Shared_Dirty: 0 kB
Private_Clean: 8 kB
Private_Dirty: 0 kB
Referenced: 460 kB
Anonymous: 0 kB
AnonHugePages: 0 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Locked: 0 kB 最 初 の 行 に は 、 /proc/[pid]/maps で 表 示 さ れ る マ ッ ピ ン グ と 同 じ 情 報 が 表 示 さ れ る 。 残 り の 行 に は 、 マ ッ ピ ン グ の サ イ ズ 、 現 在 RAM 上 に 存 在 す る マ ッ ピ ン グ の 量 ("Rss")、 こ の マ ッ ピ ン グ の こ の プ ロ セ ス の proportional share ("Pss")、 マ ッ ピ ン グ 内 の 共 有 ペ ー ジ の う ち ク リ ー ン な ペ ー ジ 数 と ダ ー テ ィ ペ ー ジ 数 、 マ ッ ピ ン グ 内 の プ ラ イ ベ ー ト ペ ー ジ の う ち ク リ ー ン な ペ ー ジ 数 と ダ ー テ ィ ペ ー ジ 数 、 を 示 す 。 "Referenced" は 参 照 さ れ た (referenced) か ア ク セ ス さ れ た と 現 在 印 が 付 い て い る メ モ リ ー 量 を 示 す 。 "Anonymous" は ど の フ ァ イ ル に も 属 し て い な い メ モ リ ー 量 を 示 す 。 "Swap" は 使 用 中 だ が ス ワ ッ プ さ れ て い る 無 名 メ モ リ ー (would−be−anonymous memory) の 量 を 示 す 。

The "KernelPageSize" entry is the page size used by the kernel to back a VMA. This matches the size used by the MMU in the majority of cases. However, one counter−example occurs on PPC64 kernels whereby a kernel using 64K as a base page size may still use 4K pages for the MMU on older processors. To distinguish, this patch reports "MMUPageSize" as the page size used by the MMU.

The "Locked" indicates whether the mapping is locked in memory or not.

"VmFlags" field represents the kernel flags associated with the particular virtual memory area in two letter encoded manner. The codes are the following:

rd − readable
wr − writable
ex − executable
sh − shared
mr − may read
mw − may write
me − may execute
ms − may share
gd − stack segment grows down
pf − pure PFN range
dw − disabled write to the mapped file
lo − pages are locked in memory
io − memory mapped I/O area
sr − sequential read advise provided
rr − random read advise provided
dc − do not copy area on fork
de − do not expand area on remapping
ac − area is accountable
nr − swap space is not reserved for the area
ht − area uses huge tlb pages
nl − non−linear mapping
ar − architecture specific flag
dd − do not include area into core dump
sd − soft−dirty flag
mm − mixed map area
hg − huge page advise flag
nh − no−huge page advise flag
mg − mergeable advise flag

/proc/[pid]/smaps フ ァ イ ル が 存 在 す る の は 、 カ ー ネ ル の コ ン フ ィ ギ ュ レ ー シ ョ ン オ プ シ ョ ン CONFIG_PROC_PAGE_MONITOR を 有 効 に し た 場 合 だ け で あ る 。

/proc/[pid]/stack (Linux 2.6.29 以 降 )

This file provides a symbolic trace of the function calls in this process’s kernel stack. This file is provided only if the kernel was built with the CONFIG_STACKTRACE configuration option.

/proc/[pid]/stat プ ロ セ ス の 状 態 に つ い て の 情 報 。 こ れ は 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 (低 ) の 範 囲 の 値 と し て 保 持 し て お り 、 そ れ ぞ れ ユ ー ザ ー に 見 え る 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) が 置 か れ る 終 了 ア ド レ ス 。
(50) env_start  %lu  (Linux 3.5 以 降 ) プ ロ グ ラ ム の 環 境 (environment) が 置 か れ る 開 始 ア ド レ ス 。
(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 で は 未 使 用 )

/proc/[pid]/status

/proc/[pid]/stat/proc/[pid]/statm に あ る 多 く の 情 報 を 、 人 間 が 解 析 し や す い 形 式 で 提 供 す る 。 以 下 に 例 を 示 す 。

$ cat /proc/$$/status
Name: bash
State: S (sleeping)
Tgid: 3515
Pid: 3515
PPid: 3452
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 100 100 100 100
FDSize: 256
Groups: 16 33 100
VmPeak: 9136 kB
VmSize: 7896 kB
VmLck: 0 kB
VmHWM: 7572 kB
VmRSS: 6316 kB
VmData: 5224 kB
VmStk: 88 kB
VmExe: 572 kB
VmLib: 1708 kB
VmPTE: 20 kB
VmSwap: 0 kB
Threads: 1
SigQ: 0/3067
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000010000
SigIgn: 0000000000384004
SigCgt: 000000004b813efb
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Seccomp: 0
Cpus_allowed: 00000001
Cpus_allowed_list: 0
Mems_allowed: 1
Mems_allowed_list: 0
voluntary_ctxt_switches: 150
nonvoluntary_ctxt_switches: 545 フ ィ ー ル ド の 詳 細 は 以 下 の 通 り で あ る 。

*

Name: こ の プ ロ セ ス に よ り 実 行 さ れ た コ マ ン ド 。

*

State: プ ロ セ ス の 現 在 の 状 態 。 "R (running; 実 行 中 )", "S (sleeping; 休 眠 状 態 )", "D (disk sleep; デ ィ ス ク 待 ち の 休 眠 状 態 )", "T (stopped; 停 止 状 態 )", "T (tracing stop; ト レ ー ス に よ る 停 止 )", "Z (zombie; ゾ ン ビ 状 態 )", "X (dead; 死 亡 )" の い ず れ か で あ る 。

*

Tgid: ス レ ッ ド グ ル ー プ ID (す な わ ち 、 プ ロ セ ス ID)。

*

Pid: ス レ ッ ド ID (gettid(2) 参 照 )。

*

PPid: 親 プ ロ セ ス の PID。

*

TracerPid: こ の プ ロ セ ス を ト レ ー ス し て い る プ ロ セ ス の PID (ト レ ー ス さ れ て い な い 場 合 は 0)。

*

Uid, Gid: 実 UID/GID、 実 効 UID/GID、 保 存 set−UID/GID、 フ ァ イ ル シ ス テ ム UID/GID。

*

FDSize: 現 在 割 り 当 て ら れ て い る フ ァ イ ル デ ィ ス ク リ プ タ ー の ス ロ ッ ト 数 。

*

Groups: 補 助 グ ル ー プ の リ ス ト 。

*

VmPeak: 仮 想 メ モ リ ー サ イ ズ の ピ ー ク 値 。

*

VmSize: 仮 想 メ モ リ ー サ イ ズ 。

*

VmLck: ロ ッ ク さ れ て い る メ モ リ ー サ イ ズ (mlock(3) 参 照 )。

*

VmHWM: 実 メ モ リ ー 上 に 存 在 す る ペ ー ジ サ イ ズ (resident set size) の ピ ー ク 値 ("high water mark")。

*

VmRSS: 実 メ モ リ ー 上 に 存 在 す る ペ ー ジ サ イ ズ 。

*

VmData, VmStk, VmExe: デ ー タ 、 ス タ ッ ク 、 テ キ ス ト セ グ メ ン ト の サ イ ズ 。

*

VmLib: 共 有 ラ イ ブ ラ リ コ ー ド の サ イ ズ 。

*

VmPTE: ペ ー ジ テ ー ブ ル エ ン ト リ ー の サ イ ズ (Linux 2.6.10 以 降 )。

*

VmSwap: ス ワ ッ プ ア ウ ト さ れ た 仮 想 メ モ リ ー サ イ ズ (Linux 2.6.34 以 降 ).

*

Threads: こ の ス レ ッ ド が 属 す る プ ロ セ ス の ス レ ッ ド 数 。

*

SigQ: こ の フ ィ ー ル ド に は ス ラ ッ シ ュ で 区 切 ら れ た 2 つ の 数 字 が 入 っ て い る 。 こ の 数 字 は こ の プ ロ セ ス の 実 ユ ー ザ ー ID 宛 に キ ュ ー イ ン グ さ れ た シ グ ナ ル に 関 す る も の で あ る 。 一 つ 目 の 数 字 は 、 こ の 実 ユ ー ザ ー ID 宛 に 現 在 キ ュ ー イ ン グ さ れ て い る シ グ ナ ル 数 で あ る 。 二 つ 目 の 数 字 は 、 こ の プ ロ セ ス 宛 に キ ュ ー イ ン グ さ れ た シ グ ナ ル 数 に 関 す る リ ソ ー ス 上 限 値 で あ る (getrlimit(2) の RLIMIT_SIGPENDING の 説 明 を 参 照 )。

*

SigPnd, ShdPnd: ス レ ッ ド 宛 お よ び プ ロ セ ス 全 体 宛 の 処 理 待 ち シ グ ナ ル の 数 (pthreads(7), signal(7) 参 照 )。

*

SigBlk, SigIgn, SigCgt: ブ ロ ッ ク さ れ る シ グ ナ ル 、 無 視 さ れ る シ グ ナ ル 、 捕 捉 待 ち の シ グ ナ ル を 示 す マ ス ク 値 (signal(7))。

*

CapInh, CapPrm, CapEff: 継 承 可 能 (inheritable)、 許 可 (permitted)、 実 効 (effective) の 各 ケ ー パ ビ リ テ ィ セ ッ ト で 有 効 に な っ て い る ケ ー パ ビ リ テ ィ の マ ス ク 値 (capabilities(7) 参 照 )。

*

CapBnd: ケ ー パ ビ リ テ ィ バ ウ ン デ ィ ン グ セ ッ ト (Linux 2.6.26 以 降 、 capabilities(7) 参 照 )。

*

Seccomp: Seccomp mode of the process (since Linux 3.8, see seccomp(2)). 0 means SECCOMP_MODE_DISABLED; 1 means SECCOMP_MODE_STRICT; 2 means SECCOMP_MODE_FILTER. This field is provided only if the kernel was built with the CONFIG_SECCOMP kernel configuration option enabled.

*

Cpus_allowed: こ の プ ロ セ ス が 実 行 を 許 可 さ れ て い る CPU の マ ス ク 値 (Linux 2.6.24 以 降 、 cpuset(7) 参 照 )。

*

Cpus_allowed_list: 前 項 と 同 じ だ が 、 「 リ ス ト 形 式 」 で の 表 示 (Linux 2.6.26 以 降 、 cpuset(7) 参 照 )。

*

Mems_allowed: こ の プ ロ セ ス が 使 用 で き る メ モ リ ー ノ ー ド の マ ス ク 値 (Linux 2.6.24 以 降 、 cpuset(7) 参 照 )。

*

Mems_allowed_list: 前 項 と 同 じ だ が 、 「 リ ス ト 形 式 」 で の 表 示 (Linux 2.6.26 以 降 、 cpuset(7) 参 照 )。

*

voluntary_ctxt_switches, nonvoluntary_ctxt_switches: 自 発 的 /非 自 発 的 な コ ン テ キ ス ト ス イ ッ チ の 回 数 (Linux 2.6.23 以 降 )。

/proc/[pid]/syscall (Linux 2.6.27 以 降 )

This file exposes the system call number and argument registers for the system call currently being executed by the process, followed by the values of the stack pointer and program counter registers. The values of all six argument registers are exposed, although most system calls use fewer registers.

If the process is blocked, but not in a system call, then the file displays −1 in place of the system call number, followed by just the values of the stack pointer and program counter. If process is not blocked, then file contains just the string "running". カ ー ネ ル の 設 定 で CONFIG_HAVE_ARCH_TRACEHOOK が 有 効 に な っ て い る 場 合 に の み 、 こ の フ ァ イ ル は 存 在 す る 。

/proc/[pid]/task (Linux 2.6.0−test6 以 降 ) こ の デ ィ レ ク ト リ に は 、 そ の プ ロ セ ス の ス レ ッ ド 情 報 を 含 む サ ブ デ ィ レ ク ト リ が 1 ス レ ッ ド に つ き 1 つ 置 か れ る 。 各 サ ブ デ ィ レ ク ト リ の 名 前 は ス レ ッ ド の ス レ ッ ド ID ([tid]) を 示 す 数 字 で あ る (gettid(2) を 参 照 )。 こ れ ら の 各 サ ブ デ ィ レ ク ト リ に は 、 /proc/[pid] デ ィ レ ク ト リ 以 下 と 同 じ 名 前 と 内 容 の フ ァ イ ル 群 が あ る 。 す べ て の ス レ ッ ド で 共 有 さ れ る 属 性 の 場 合 、 task/[tid] サ ブ デ ィ レ ク ト リ 以 下 の 各 フ ァ イ ル の 内 容 は 親 デ ィ レ ク ト リ /proc/[pid] の 対 応 す る フ ァ イ ル と 同 じ に な る こ と だ ろ う (例 え ば 、 マ ル チ ス レ ッ ド プ ロ セ ス で は フ ァ イ ル task/[tid]/cwd は い ず れ も 親 デ ィ レ ク ト リ 内 の /proc/[pid]/cwd と 同 じ 値 を 持 つ こ と に な る 。 な ぜ な ら 、 一 つ の プ ロ セ ス に 属 す す べ て の ス レ ッ ド は 作 業 デ ィ レ ク ト リ を 共 有 す る か ら で あ る )。 ス レ ッ ド 毎 に 独 立 な 属 性 の 場 合 、 task/[tid] サ ブ デ ィ レ ク ト リ 以 下 の 各 フ ァ イ ル は 異 な る 値 を 持 つ こ と が あ る (例 え ば 、 フ ァ イ ル task/[tid]/status は ス レ ッ ド 毎 に 異 な る 値 を 持 つ 可 能 性 が あ る )。 マ ル チ ス レ ッ ド プ ロ セ ス で は 、 メ イ ン ス レ ッ ド が す で に 終 了 し て い る 場 合 、 /proc/[pid]/task デ ィ レ ク ト リ の 内 容 は 参 照 で き な い (ス レ ッ ド の 終 了 は 通 常 pthread_exit(3) を 呼 び 出 し に よ り 行 わ れ る )。
/proc/[pid]/uid_map
, /proc/[pid]/gid_map (Linux 3.5 以 降 )

These files expose the mappings for user and group IDs inside the user namespace for the process pid. The description here explains the details for uid_map; gid_map is exactly the same, but each instance of "user ID" is replaced by "group ID".

The uid_map file exposes the mapping of user IDs from the user namespace of the process pid to the user namespace of the process that opened uid_map (but see a qualification to this point below). In other words, processes that are in different user namespaces will potentially see different values when reading from a particular uid_map file, depending on the user ID mappings for the user namespaces of the reading processes.

Each line in the file specifies a 1−to−1 mapping of a range of contiguous between two user namespaces. The specification in each line takes the form of three numbers delimited by white space. The first two numbers specify the starting user ID in each user namespace. The third number specifies the length of the mapped range. In detail, the fields are interpreted as follows:

(1)

The start of the range of user IDs in the user namespace of the process pid.

(2)

The start of the range of user IDs to which the user IDs specified by field one map. How field two is interpreted depends on whether the process that opened uid_map and the process pid are in the same user namespace, as follows:

a)

If the two processes are in different user namespaces: field two is the start of a range of user IDs in the user namespace of the process that opened uid_map.

b)

If the two processes are in the same user namespace: field two is the start of the range of user IDs in the parent user namespace of the process pid. (The "parent user namespace" is the user namespace of the process that created a user namespace via a call to unshare(2) or clone(2) with the CLONE_NEWUSER flag.) This case enables the opener of uid_map (the common case here is opening /proc/self/uid_map) to see the mapping of user IDs into the user namespace of the process that created this user namespace.

(3)

The length of the range of user IDs that is mapped between the two user namespaces.

After the creation of a new user namespace, the uid_map file may be written to exactly once to specify the mapping of user IDs in the new user namespace. (An attempt to write more than once to the file fails with the error EPERM.)

The lines written to uid_map must conform to the following rules:

*

The three fields must be valid numbers, and the last field must be greater than 0.

*

Lines are terminated by newline characters.

*

There is an (arbitrary) limit on the number of lines in the file. As at Linux 3.8, the limit is five lines.

*

The range of user IDs specified in each line cannot overlap with the ranges in any other lines. In the current implementation (Linux 3.8), this requirement is satisfied by a simplistic implementation that imposes the further requirement that the values in both field 1 and field 2 of successive lines must be in ascending numerical order.

Writes that violate the above rules fail with the error EINVAL.

In order for a process to write to the /proc/[pid]/uid_map (/proc/[pid]/gid_map) file, the following requirements must be met:

*

The process must have the CAP_SETUID (CAP_SETGID) capability in the user namespace of the process pid.

*

The process must have the CAP_SETUID (CAP_SETGID) capability in the parent user namespace.

*

The process must be in either the user namespace of the process pid or inside the parent user namespace of the process pid.

For further details, see namespaces(7).
/proc/[pid]/wchan
(Linux 2.6.0 以 降 )

The symbolic name corresponding to the location in the kernel where the process is sleeping.

/proc/apm

Advanced Power Management の バ ー ジ ョ ン と バ ッ テ リ 情 報 。 カ ー ネ ル の コ ン パ イ ル 時 に CONFIG_APM を 定 義 し た と き に 存 在 す る 。

/proc/buddyinfo

This file contains information which is used for diagnosing memory fragmentation issues. Each line starts with the identification of the node and the name of the zone which together identify a memory region This is then followed by the count of available chunks of a certain order in which these zones are split. The size in bytes of a certain order is given by the formual:

(2^order) * PAGE_SIZE

The binary buddy allocator algorithm inside the kernel will split one chunk into two chunks of a smaller order (thus with half the size) or combine two contiguous chunks into one larger chunk of a higher order (thus with double the size) to satisfy allocation requests and to counter memory fragmentation. The order matches the column number, when starting to count at zero.

For example on a x86_64 system:

Node 0, zone DMA 1 1 1 0 2 1 1 0 1 1 3
Node 0, zone DMA32 65 47 4 81 52 28 13 10 5 1 404
Node 0, zone Normal 216 55 189 101 84 38 37 27 5 3 587

In this example, there is one node containing three zones and there are 11 different chunk sizes. If the page size is 4 kilobytes, then the first zone called DMA (on x86 the first 16 megabyte of memory) has 1 chunk of 4 kilobytes (order 0) available and has 3 chunks of 4 megabytes (order 10) available.

If the memory is heavily fragmented, the counters for higher order chunks will be zero and allocation of large contiguous areas will fail.

Further information about the zones can be found in /proc/zoneinfo.

/proc/bus イ ン ス ト ー ル さ れ て い る 各 バ ス 用 に サ ブ デ ィ レ ク ト リ が あ る 。
/proc/bus/pccard

PCMCIA デ バ イ ス の 情 報 が 書 か れ る サ ブ デ ィ レ ク ト リ 。 カ ー ネ ル の コ ン パ イ ル 時 に CONFIG_PCMCIA を 定 義 し た と き に 存 在 す る 。

/proc/[pid]/timers (Linux 3.10 以 降 ) こ の プ ロ セ ス の POSIX タ イ マ ー の リ ス ト 。 各 タ イ マ ー は 文 字 列 "ID:" で 始 ま る 行 に 表 示 さ れ る 。 例 :

ID: 1
signal: 60/00007fff86e452a8
notify: signal/pid.2634
ClockID: 0
ID: 0
signal: 60/00007fff86e452a8
notify: signal/pid.2634
ClockID: 1 各 タ イ マ ー に 表 示 さ れ る 行 の 意 味 は 次 の 通 り で あ る 。

ID こ の タ イ マ ー の

ID。 こ の ID は timer_create(2) が 返 す タ イ

マ ー ID と 同 じ で は な い 。 siginfo_t 構 造 化 の si_timerid フ ィ ー ル ド で 参 照 で き る カ ー ネ ル 内 部 で の ID と 同 じ で あ る (sigaction(2) 参 照 )。

signal こ の タ イ マ ー が 通 知 の 配 送 に 使 用 す る シ グ ナ ル 番 号 で あ る 。 ス ラ ッ シ ュ の 後 ろ は 、 シ グ ナ ル ハ ン ド ラ ー に 渡 さ れ る

sigev_value.sival_ptr 値 で あ る 。 シ グ ナ ル で 通 知 さ れ る タ イ マ ー で の み 有 効 で あ る 。

notify ス ラ ッ シ ュ の 前 の 部 分 は 、 こ の タ イ マ ー が 使 用 す る 通 知 の 配 送 方 法 で あ り 、 「 ス レ ッ ド 」 「 シ グ ナ ル 」 「 な し 」 の い ず れ か で あ る 。 ス ラ ッ シ ュ の す ぐ 後 に は 、

SIGEV_THREAD_ID 通 知 を 行 う タ イ マ ー で は 文 字 列 の "tid" が 、 も し く は 他 の 方 法 で 通 知 す る タ イ マ ー で は "pid" が 表 示 さ れ る 。 "." の 後 ろ は 、 そ の タ イ マ ー が シ ン グ ル で 通 知 を 配 送 す る 場 合 に は シ グ ナ ル の 配 送 対 象 と な る プ ロ セ ス の PID で あ る 。
ClockID
こ の フ ィ ー ル ド は タ イ マ ー が 時 間 を 計 測 す る の に 使 用 す る ク ロ ッ ク を 示 す 。 ほ と ん ど の ク ロ ッ ク で は 、 こ の フ ィ ー ル ド は <time.h> で 公 開 さ れ る ユ ー ザ ー 空 間 の CLOCK_* 定 数 の い ず れ か の 数 字 で あ る 。 CLOCK_PROCESS_CPUTIME_ID タ イ マ ー で は 、 こ の フ ィ ー ル ド に −6 が 表 示 さ れ る 。 CLOCK_THREAD_CPUTIME_ID タ イ マ ー で は −2 が 表 示 さ れ る 。

/proc/bus/pccard/drivers
/proc/bus/pci
い く つ か の サ ブ デ ィ レ ク ト リ が あ り 、 PCI バ ス ・ イ ン ス ト ー ル さ れ て い る デ バ イ ス ・ デ バ イ ス ド ラ イ バ の 情 報 が 書 か れ た 仮 想 フ ァ イ ル が あ る 。 こ れ ら の フ ァ イ ル の う ち い く つ か は ASCII フ ォ ー マ ッ ト で は な い 。
/proc/bus/pci/devices

PCI デ バ イ ス の 情 報 。 lspci(8)setpci(8) で ア ク セ ス す る こ と が で き る 。

/proc/cmdline ブ ー ト 時 に Linux カ ー ネ ル に 渡 さ れ た 引 き 数 。 引 き 数 の 受 け 渡 し は 、 た い て い lilo(8)grub(8) と い っ た ブ ー ト マ ネ ー ジ ャ を 使 っ て 行 わ れ る 。
/proc/config.gz
(Linux 2.6 以 降 ) こ の フ ァ イ ル で は 、 現 在 実 行 中 の カ ー ネ ル の 構 築 時 に 使 用 さ れ た 設 定 オ プ シ ョ ン を 参 照 で き る 。 書 式 は 、 (make xconfig, make config な ど を 使 っ て ) カ ー ネ ル の 設 定 を 変 更 し た 際 に 生 成 さ れ る .config フ ァ イ ル の も の と 同 じ で あ る 。 フ ァ イ ル の 内 容 は 圧 縮 さ れ て お り 、 zcat(1)zgrep(1) を 使 う と 、 表 示 や 検 索 が で き る 。 フ ァ イ ル が 変 更 さ れ て い な い 限 り 、 /proc/config.gz の 内 容 は 次 の コ マ ン ド で 得 ら れ る 内 容 と 同 じ で あ る 。

cat /lib/modules/$(uname −r)/build/.config

/proc/config.gz が 提 供 さ れ る の は 、 カ ー ネ ル の 設 定 で CONFIG_IKCONFIG_PROC が 有 効 に な っ て い る 場 合 の み で あ る 。

/proc/cpuinfo こ の フ ァ イ ル は 、 CPU お よ び シ ス テ ム ア ー キ テ ク チ ャ ー に 依 存 す る 項 目 を 集 め た も の で 、 リ ス ト の 内 容 は サ ポ ー ト さ れ て い る ア ー キ テ ク チ ャ ー 毎 に 異 な る 。 2 つ だ け 共 通 の 項 目 が あ る 。 processor は プ ロ セ ッ サ 番 号 で 、 bogomips は カ ー ネ ル の 初 期 化 時 に 計 算 さ れ る シ ス テ ム 定 数 で あ る 。 SMP マ シ ン で は 各 CPU に つ い て の 情 報 が 書 か れ て い る 。 lscpu(1) コ マ ン ド は こ の フ ァ イ ル か ら 情 報 を 収 集 す る 。
/proc/devices
メ ジ ャ ー デ バ イ ス 番 号 と デ バ イ ス グ ル ー プ の テ キ ス ト 形 式 の リ ス ト 。 MAKEDEV ス ク リ プ ト は こ の フ ァ イ ル を 使 っ て 、 カ ー ネ ル と の 整 合 性 を 保 つ こ と が で き る 。
/proc/diskstats
(Linux 2.5.69 以 降 ) こ の フ ァ イ ル に は 各 デ ィ ス ク デ バ イ ス の デ ィ ス ク I/O 統 計 情 報 が 書 か れ て い る 。 更 に 詳 し い 情 報 は 、 Linux カ ー ネ ル ソ ー ス フ ァ イ ル Documentation/iostats.txt を 参 照 す る こ と 。
/proc/dma
登 録 さ れ て い る ISA DMA (direct memory access) チ ャ ネ ル の リ ス ト 。
/proc/driver
空 の サ ブ デ ィ レ ク ト リ 。
/proc/execdomains
実 行 ド メ イ ン の リ ス ト (ABI パ ー ソ ナ リ テ ィ )。
/proc/fb
カ ー ネ ル の コ ン パ イ ル 時 に CONFIG_FB が 定 義 さ れ て い る 場 合 、 フ レ ー ム バ ッ フ ァ ー の 情 報 が 書 か れ る 。
/proc/filesystems
カ ー ネ ル が 対 応 し て い る フ ァ イ ル シ ス テ ム の テ キ ス ト 形 式 の リ ス ト 。 カ ー ネ ル に 組 み 込 ま れ て コ ン パ イ ル さ れ た フ ァ イ ル シ ス テ ム と 、 カ ー ネ ル モ ジ ュ ー ル が 現 在 ロ ー ド さ れ て い る フ ァ イ ル シ ス テ ム が 列 挙 さ れ る (filesystems(5) 参 照 )。 フ ァ イ ル シ ス テ ム に "nodev" と い う 印 が 付 い て い る 場 合 、 そ の フ ァ イ ル シ ス テ ム が マ ウ ン ト す る た め の ブ ロ ッ ク デ バ イ ス を 必 要 と し な い こ と を 意 味 す る (例 え ば 、 仮 想 フ ァ イ ル シ ス テ ム 、 ネ ッ ト ワ ー ク フ ァ イ ル シ ス テ ム な ど )。 ち な み に 、 マ ウ ン ト 時 に フ ァ イ ル シ ス テ ム が 指 定 さ れ ず 、 ど う や っ て も フ ァ イ ル シ ス テ ム の 種 類 を 判 定 で き な か っ た 際 に 、 こ の フ ァ イ ル を mount(8) が 使 用 す る か も し れ な い 。 そ の 場 合 、 こ の フ ァ イ ル に 含 ま れ る フ ァ イ ル シ ス テ ム が 試 さ れ る (た だ し 、 "nodev" の 印 が つ い た も の は 除 く )。
/proc/fs
マ ウ ン ト さ れ て い る フ ァ イ ル シ ス テ ム に 関 す る 情 報 を 提 供 す る フ ァ イ ル が 入 っ た サ ブ デ ィ レ ク ト リ が 入 っ て い る 。
/proc/ide
こ の デ ィ レ ク ト リ は IDE バ ス を も つ シ ス テ ム に 存 在 す る 。 各 IDE チ ャ ネ ル と そ れ に 取 り 付 け ら れ て い る 各 デ バ イ ス ご と に デ ィ レ ク ト リ が あ り 、 以 下 の フ ァ イ ル が 含 ま れ て い る 。

cache バ ッ フ ァ ー サ イ ズ (KB)
capacity セ ク タ 数
driver ド ラ イ バ の バ ー ジ ョ ン
geometry 物 理 ジ オ メ ト リ と 論 理 ジ オ メ ト リ
identify 16 進 数 表 記
media メ デ ィ ア の タ イ プ
model 製 造 者 の モ デ ル 番 号
settings ド ラ イ ブ の 設 定
smart_thresholds 16 進 数 表 記
smart_values 16 進 数 表 記

hdparm(8) ユ ー テ ィ リ テ ィ は 、 分 か り や す い 形 式 で こ の 情 報 に ア ク セ ス す る た め の 手 段 を 提 供 す る 。

/proc/interrupts

IO デ バ イ ス 毎 の CPU 別 の 割 り 込 み 回 数 の 記 録 に 使 わ れ る 。 Linux 2.6.24 以 降 、 少 な く と も i386 と x86_64 ア ー キ テ ク チ ャ ー で は 、 (デ バ イ ス と 関 連 が な い ) シ ス テ ム 内 部 の 割 り 込 み に つ い て も 記 録 さ れ る 。 シ ス テ ム 内 部 の 割 り 込 み に は 、 NMI (nonmaskable interrupt), LOC (local timer interrupt) や 、 SMP シ ス テ ム で は TLB (TLB flush interrupt), RES (rescheduling interrupt), CAL (remote function call interrupt) な ど が あ る 。 簡 単 に 読 む こ と の で き る フ ォ ー マ ッ ト で 、 ASCII で 表 記 さ れ て い る 。

/proc/iomem

Linux 2.4 に お け る I/O メ モ リ ー マ ッ プ 。

/proc/ioports 現 在 登 録 さ れ 使 わ れ て い る I/O ポ ー ト 領 域 の リ ス ト 。
/proc/kallsyms
(Linux 2.5.71 以 降 ) カ ー ネ ル の 外 部 シ ン ボ ル 定 義 を 保 持 す る 。 modules(X) 関 係 の ツ ー ル が ロ ー ダ ー ブ ル モ ジ ュ ー ル を 動 的 に リ ン ク し た り バ イ ン ド (bind) す る の に 使 わ れ る 。 Linux 2.5.47 以 前 で は 、 微 妙 に 異 な る 書 式 の 似 た よ う な フ ァ イ ル が ksyms と い う 名 前 で あ っ た 。
/proc/kcore
こ の フ ァ イ ル は シ ス テ ム の 物 理 メ モ リ ー を 表 現 し て お り 、 ELF コ ア フ ァ イ ル 形 式 (core file format) で 保 持 さ れ て い る 。 こ の 擬 似 フ ァ イ ル と strip さ れ て い な い カ ー ネ ル の バ イ ナ リ (/usr/src/linux/vmlinux) [訳 注 : パ ッ ケ ー ジ に 依 存 す る ]) が あ れ ば 、 GDB は カ ー ネ ル 内 の 任 意 の デ ー タ 構 造 の 現 在 の 状 態 を 調 べ ら れ る 。 こ の フ ァ イ ル の 大 き さ は 物 理 メ モ リ ー (RAM) の サ イ ズ に 4KB を 加 え た 値 で あ る 。
/proc/kmsg
こ の フ ァ イ ル は syslog(2) シ ス テ ム コ ー ル で カ ー ネ ル メ ッ セ ー ジ を 読 み 出 す 代 り に 使 え る 。 プ ロ セ ス が こ の フ ァ イ ル を 読 む た め に は ス ー パ ー ユ ー ザ ー 権 限 が 必 要 で あ り 、 フ ァ イ ル を 読 み 出 す の は 1 つ の プ ロ セ ス の み に 限 る べ き で あ る 。 カ ー ネ ル メ ッ セ ー ジ を 記 録 す る た め に 、 syslog(2) シ ス テ ム コ ー ル の 機 能 を 使 う syslog プ ロ セ ス が 稼 働 し て い る 場 合 、 こ の フ ァ イ ル を 読 み 出 す べ き で は な い 。 こ の フ ァ イ ル の 中 の 情 報 は dmesg(1) に よ っ て 表 示 さ れ る 。
/proc/kpagecount
(Linux 2.6.25 以 降 ) こ の フ ァ イ ル に は 、 各 物 理 ペ ー ジ フ レ ー ム が マ ッ ピ ン グ さ れ た 回 数 が 64 ビ ッ ト カ ウ ン タ ー と し て 入 っ て い る 。 イ ン デ ッ ク ス は ペ ー ジ フ レ ー ム 番 号 で あ る (/proc/[pid]/pagemap の 議 論 を 参 照 )。

/proc/kpagecount フ ァ イ ル が 存 在 す る の は 、 カ ー ネ ル の コ ン フ ィ ギ ュ レ ー シ ョ ン オ プ シ ョ ン CONFIG_PROC_PAGE_MONITOR を 有 効 に し た 場 合 だ け で あ る 。

/proc/kpageflags (Linux 2.6.25 以 降 ) こ の フ ァ イ ル に は 、 各 物 理 ペ ー ジ フ レ ー ム に 対 応 す る 64 ビ ッ ト マ ス ク が 入 っ て い る 。 イ ン デ ッ ク ス は ペ ー ジ フ レ ー ム 番 号 で あ る (/proc/[pid]/pagemap の 議 論 を 参 照 )。 各 ビ ッ ト は 以 下 の と お り で あ る 。

0 − KPF_LOCKED
1 − KPF_ERROR
2 − KPF_REFERENCED
3 − KPF_UPTODATE
4 − KPF_DIRTY
5 − KPF_LRU
6 − KPF_ACTIVE
7 − KPF_SLAB
8 − KPF_WRITEBACK
9 − KPF_RECLAIM
10 − KPF_BUDDY
11 − KPF_MMAP (Linux 2.6.31 以 降 )
12 − KPF_ANON (Linux 2.6.31 以 降 )
13 − KPF_SWAPCACHE (Linux 2.6.31 以 降 )
14 − KPF_SWAPBACKED (Linux 2.6.31 以 降 )
15 − KPF_COMPOUND_HEAD (Linux 2.6.31 以 降 )
16 − KPF_COMPOUND_TAIL (Linux 2.6.31 以 降 )
16 − KPF_HUGE (Linux 2.6.31 以 降 )
18 − KPF_UNEVICTABLE (Linux 2.6.31 以 降 )
19 − KPF_HWPOISON (Linux 2.6.31 以 降 )
20 − KPF_NOPAGE (Linux 2.6.31 以 降 )
21 − KPF_KSM (Linux 2.6.32 以 降 )
22 − KPF_THP (Linux 3.4 以 降 ) こ れ ら の ビ ッ ト の 意 味 の 詳 し い 説 明 は 、 カ ー ネ ル の ソ ー ス フ ァ イ ル Documentation/vm/pagemap.txt を 参 照 。 カ ー ネ ル 2.6.29 よ り 前 で は 、 KPF_WRITEBACK, KPF_RECLAIM, KPF_BUDDY, KPF_LOCKED は 正 し い 値 を 返 さ な か っ た 。

/proc/kpageflags フ ァ イ ル が 存 在 す る の は 、 カ ー ネ ル の コ ン フ ィ ギ ュ レ ー シ ョ ン オ プ シ ョ ン CONFIG_PROC_PAGE_MONITOR を 有 効 に し た 場 合 だ け で あ る 。

/proc/ksyms (Linux 1.1.23−2.5.47)

/proc/kallsyms を 参 照 。

/proc/loadavg こ の フ ァ イ ル の 最 初 の 3 つ の フ ィ ー ル ド は ロ ー ド ア ベ レ ー ジ の 数 値 で 、 1, 5, 15 分 あ た り の 実 行 キ ュ ー 内 (state R) ま た は デ ィ ス ク I/O 待 ち (state D) の ジ ョ ブ 数 を 与 え る 。 こ れ は uptime(1) な ど の プ ロ グ ラ ム に よ っ て 得 ら れ る 値 と 同 じ で あ る 。 4 番 目 の フ ィ ー ル ド は ス ラ ッ シ ュ (/) で 区 切 ら れ た 2 つ の 数 値 か ら 構 成 さ れ る 。 こ の 数 値 の う ち 最 初 の も の は 、 現 在 実 行 可 能 な カ ー ネ ル ス ケ ジ ュ ー ル エ ン テ ィ テ ィ (プ ロ セ ス 、 ス レ ッ ド ) の 数 で あ る 。 ス ラ ッ シ ュ の 後 の 数 値 は 、 現 在 シ ス テ ム 上 に 存 在 す る カ ー ネ ル ス ケ ジ ュ ー ル エ ン テ ィ テ ィ の 数 で あ る 。 5 番 目 の フ ィ ー ル ド は シ ス テ ム 上 に 最 も 最 近 生 成 さ れ た プ ロ セ ス の PID で あ る 。
/proc/locks
こ の フ ァ イ ル は 現 在 の フ ァ イ ル ロ ッ ク (flock(2) と fcntl(2)) と リ ー ス (fcntl(2)) を 表 示 す る 。
/proc/malloc
(Linux 2.2 以 前 の み ) コ ン パ イ ル の と き に CONFIGDEBUGMALLOC が 定 義 さ れ て い る と き の み 、 こ の フ ァ イ ル は 存 在 す る 。
/proc/meminfo
こ の フ ァ イ ル は シ ス テ ム の メ モ リ ー 使 用 状 況 の 統 計 情 報 を 表 示 す る 。 free(1) は こ の フ ァ イ ル を 使 っ て 、 そ の シ ス テ ム の (物 理 メ モ リ ー と ス ワ ッ プ の 両 方 の ) 未 使 用 と 使 用 中 の メ モ リ ー 量 と 、 カ ー ネ ル が 使 用 し て い る 共 有 メ モ リ ー と バ ッ フ ァ ー の 使 用 量 を 表 示 す る 。 こ の フ ァ イ ル の 各 行 は 、 パ ラ メ ー タ ー 名 の 後 に 、 コ ロ ン 、 パ ラ メ ー タ ー 値 が 続 く 。 最 後 に ("kB" な ど の ) 計 測 単 位 が あ る 場 合 も あ る 。 以 下 の リ ス ト で は 、 フ ィ ー ル ド 名 と 、 フ ィ ー ル ド 値 を 読 み 込 む の に 必 要 な フ ォ ー マ ッ ト 指 定 子 (format specifier) に つ い て 説 明 す る 。 特 に 注 記 が あ る 場 合 を 除 く と 、 す べ て の フ ィ ー ル ド が 少 な く と も Linux 2.6.0 以 降 で は 存 在 す る 。 い く つ か の フ ィ ー ル ド は 、 カ ー ネ ル で オ プ シ ョ ン が 有 効 に な っ て い る 場 合 に の み 表 示 さ れ る 。 こ う し た 依 存 関 係 に つ い て は リ ス ト 内 に 注 記 が あ る 。

MemTotal %lu 使 用 可 能 な RAM の 総 量 (つ ま り 、 物 理 RAM サ イ ズ か ら い く つ か の 予 約 ビ ッ ト と カ ー ネ ル の バ イ ナ リ コ ー ド の 分 を 引 い た 値 )。
MemFree
%lu

LowFree+HighFree の 合 計 値 。

Buffers %lu

Relatively temporary storage for raw disk blocks that shouldn’t get tremendously large (20MB or so).

Cached %lu デ ィ ス ク か ら 読 み 出 し た フ ァ イ ル の イ ン メ モ リ ー キ ャ ッ シ ュ (ペ ー ジ キ ャ ッ シ ュ )。 SwapCached は 含 ま れ な い 。
SwapCached
%lu 一 度 ス ワ ッ プ ア ウ ト さ れ 、 そ の 後 ス ワ ッ プ イ ン さ れ た が 、 ま だ ス ワ ッ プ フ ァ イ ル に も 存 在 す る メ モ リ ー 。 (メ モ リ ー が 残 り 少 な い 場 合 、 こ れ ら の ペ ー ジ は 、 す で に ス ワ ッ プ フ ァ イ ル に 存 在 す る の で 、 も う 一 度 ス ワ ッ プ ア ウ ト す る 必 要 が な い 。 こ れ に よ り I/O が 節 約 で き る 。 )
Active
%lu 最 近 使 用 さ れ た メ モ リ ー で 、 通 常 は 本 当 に 必 要 に な ら な い 限 り 回 収 さ れ な い メ モ リ ー 。
Inactive
%lu 最 近 あ ま り 使 用 さ れ て い な い メ モ リ ー 。 他 の 使 用 す る た め に 優 先 し て 回 収 す べ き メ モ リ ー 。
Active(anon)
%lu (Linux 2.6.28 以 降 )

[後 で 記 載 す る ]

Inactive(anon) %lu (Linux 2.6.28 以 降 )

[後 で 記 載 す る ]

Active(file) %lu (Linux 2.6.28 以 降 )

[後 で 記 載 す る ]

Inactive(file) %lu (Linux 2.6.28 以 降 )

[後 で 記 載 す る ]

Unevictable %lu (Linux 2.6.28 以 降 )

(Linux 2.6.28 か ら 2.6.30 ま で で は CONFIG_UNEVICTABLE_LRU が 必 要 で あ っ た 。 ) [後 で 記 載 す る ]

Mlocked %lu (Linux 2.6.28 以 降 )

(Linux 2.6.28 か ら 2.6.30 ま で で は CONFIG_UNEVICTABLE_LRU が 必 要 で あ っ た 。 ) [後 で 記 載 す る ]

HighTotal %lu

(Linux 2.6.19 以 降 で は CONFIG_HIGHMEM が 必 要 ) highmem の 総 量 。 highmem は 物 理 メ モ リ ー の 860MB 付 近 よ り も 上 の 部 分 の メ モ リ ー 領 域 全 体 の こ と で あ る 。 highmem 領 域 は ユ ー ザ ー 空 間 プ ロ グ ラ ム と ペ ー ジ キ ャ ッ シ ュ で 使 用 さ れ る 。 カ ー ネ ル は こ の メ モ リ ー に ア ク セ ス す る の に 小 技 を 使 っ て お り 、 lowmem よ り も ア ク セ ス が 遅 く な る 。

HighFree %lu

(Linux 2.6.19 以 降 で は CONFIG_HIGHMEM が 必 要 ) 未 使 用 の highmem 量 。

LowTotal %lu

(Starting with Linux 2.6.19, CONFIG_HIGHMEM is required.) Total amount of lowmem. Lowmem is memory which can be used for everything that highmem can be used for, but it is also available for the kernel’s use for its own data structures. Among many other things, it is where everything from Slab is allocated. Bad things happen when you’re out of lowmem.

LowFree %lu

(Linux 2.6.19 以 降 で は CONFIG_HIGHMEM が 必 要 ) 未 使 用 の lowmem 量 。

MmapCopy %lu (Linux 2.6.29 以 降 )

(CONFIG_MMU が 必 要 ) [後 で 記 載 す る ]

SwapTotal %lu 利 用 可 能 な ス ワ ッ プ 空 間 の 総 量 。
SwapFree
%lu 現 在 未 使 用 の ス ワ ッ プ 空 間 の 量 。
Dirty
%lu デ ィ ス ク に 書 き 戻 さ れ る の を 待 っ て い る メ モ リ ー 。
Writeback
%lu 現 在 デ ィ ス ク に 書 き 戻 し 中 の メ モ リ ー 。
AnonPages
%lu (Linux 2.6.18 以 降 ) ユ ー ザ ー 空 間 ペ ー ジ テ ー ブ ル に マ ッ ピ ン グ さ れ て い る フ ァ イ ル と 関 連 付 け ら れ て い な い ペ ー ジ 。
Mapped
%lu

(mmap(2) で ) メ モ リ ー に マ ッ ピ ン グ さ れ て い る フ ァ イ ル 。 ラ イ ブ ラ リ な ど 。

Shmem %lu (Linux 2.6.32 以 降 )

[後 で 記 載 す る ]

Slab %lu カ ー ネ ル 内 の デ ー タ 構 造 体 の キ ャ ッ シ ュ 。
SReclaimable
%lu (Linux 2.6.19 以 降 ) 回 収 可 能 な Slab。 キ ャ ッ シ ュ な ど 。
SUnreclaim
%lu (Linux 2.6.19 以 降 ) メ モ リ ー 消 費 が 激 し い 際 で も 回 収 で き な い Slab
KernelStack
%lu (Linux 2.6.32 以 降 ) カ ー ネ ル ス タ ッ ク に 割 り 宛 て ら れ て い る メ モ リ ー 量 。
PageTables
%lu (Linux 2.6.18 以 降 )

Amount of memory dedicated to the lowest level of page tables.

Quicklists %lu (Linux 2.6.27 以 降 )

(CONFIG_QUICKLIST が 必 要 ) [後 で 記 載 す る ]

NFS_Unstable %lu (Linux 2.6.18 以 降 ) サ ー バ に 送 信 さ れ た が 、 ま だ 永 続 的 な ス ト レ ー ジ に は 書 き 込 ま れ て い な い NFS ペ ー ジ 。
Bounce
%lu (Linux 2.6.18 以 降 )

Memory used for block device "bounce buffers".

WritebackTmp %lu (Linux 2.6.26 以 降 )

FUSE で 一 時 的 な ラ イ ト バ ッ ク バ ッ フ ァ ー に 使 わ れ て い る メ モ リ ー 。

CommitLimit %lu (Linux 2.6.10 以 降 )

This is the total amount of memory currently available to be allocated on the system, expressed in kilobytes. This limit is adhered to only if strict overcommit accounting is enabled (mode 2 in /proc/sys/vm/overcommit_memory). The limit is calculated according to the formula described under /proc/sys/vm/overcommit_memory. For further details, see the kernel source file Documentation/vm/overcommit−accounting.

Committed_AS %lu

The amount of memory presently allocated on the system. The committed memory is a sum of all of the memory which has been allocated by processes, even if it has not been "used" by them as of yet. A process which allocates 1GB of memory (using malloc(3) or similar), but touches only 300MB of that memory will show up as using only 300MB of memory even if it has the address space allocated for the entire 1GB.

This 1GB is memory which has been "committed" to by the VM and can be used at any time by the allocating application. With strict overcommit enabled on the system (mode 2 in IR /proc/sys/vm/overcommit_memory ), allocations which would exceed the CommitLimit will not be permitted. This is useful if one needs to guarantee that processes will not fail due to lack of memory once that memory has been successfully allocated.

VmallocTotal %lu

vmalloc メ モ リ ー 領 域 の 総 量 。

VmallocUsed %lu 使 用 中 の vmalloc 領 域 の 量 。
VmallocChunk
%lu

vmalloc 領 域 の 未 使 用 の 連 続 す る ブ ロ ッ ク の 最 大 サ イ ズ 。

HardwareCorrupted %lu (Linux 2.6.32 以 降 )

(CONFIG_MEMORY_FAILURE が 必 要 ) [後 で 記 載 す る ]

AnonHugePages %lu (Linux 2.6.38 以 降 )

(CONFIG_TRANSPARENT_HUGEPAGE が 必 要 ) ユ ー ザ ー 空 間 ペ ー ジ テ ー ブ ル に マ ッ ピ ン グ さ れ て い る フ ァ イ ル と 関 連 付 け ら れ て い な い ヒ ュ ー ジ ペ ー ジ 。

HugePages_Total %lu

(CONFIG_HUGETLB_PAGE が 必 要 ) ヒ ュ ー ジ ペ ー ジ の プ ー ル サ イ ズ 。

HugePages_Free %lu

(CONFIG_HUGETLB_PAGE が 必 要 ) プ ー ル 内 の 割 り 当 て ら れ て い な い ヒ ュ ー ジ ペ ー ジ 数 。

HugePages_Rsvd %lu (Linux 2.6.17 以 降 )

(CONFIG_HUGETLB_PAGE が 必 要 ) プ ー ル か ら 割 り 当 て が 宣 言 さ れ た が 、 ま だ 割 り 当 て が 行 わ れ て い な い ヒ ュ ー ジ ペ ー ジ 数 。 こ れ ら の 予 約 ヒ ュ ー ジ ペ ー ジ に よ り 、 ア プ リ ケ ー シ ョ ン が メ モ リ ー フ ォ ー ル ト 時 に ヒ ュ ー ジ ペ ー ジ の プ ー ル か ら ヒ ュ ー ジ ペ ー ジ が 割 り 当 て ら れ る こ と が 保 証 さ れ る 。

HugePages_Surp %lu (Linux 2.6.24 以 降 )

(CONFIG_HUGETLB_PAGE is required.) This is the number of huge pages in the pool above the value in /proc/sys/vm/nr_hugepages. The maximum number of surplus huge pages is controlled by /proc/sys/vm/nr_overcommit_hugepages.

Hugepagesize %lu

(CONFIG_HUGETLB_PAGE が 必 要 ) ヒ ュ ー ジ ペ ー ジ の サ イ ズ 。

/proc/modules 現 在 シ ス テ ム に ロ ー ド さ れ て い る モ ジ ュ ー ル の テ キ ス ト 形 式 の リ ス ト 。 lsmod(8) も 参 照 。
/proc/mounts
カ ー ネ ル 2.4.19 よ り 前 で は 、 こ の フ ァ イ ル は 現 在 シ ス テ ム に マ ウ ン ト さ れ て い る 全 て の フ ァ イ ル シ ス テ ム の リ ス ト で あ っ た 。 Linux 2.4.19 で プ ロ セ ス 単 位 の マ ウ ン ト 名 前 空 間 が 導 入 さ れ た こ と に 伴 い 、 こ の フ ァ イ ル は /proc/self/mounts へ の リ ン ク と な っ た 。 /proc/self/mounts は そ の プ ロ セ ス 自 身 の マ ウ ン ト 名 前 空 間 の マ ウ ン ト ポ イ ン ト の リ ス ト で あ る 。 こ の フ ァ イ ル の フ ォ ー マ ッ ト は fstab(5) に 記 述 さ れ て い る 。
/proc/mtrr

Memory Type Range Registers。 詳 細 は 、 Linux カ ー ネ ル ソ ー ス フ ァ イ ル Documentation/mtrr.txt を 参 照 す る こ と 。

/proc/net さ ま ざ ま な ネ ッ ト ワ ー ク に つ い て の 擬 似 フ ァ イ ル で 、 そ れ ぞ れ が ネ ッ ト ワ ー ク 層 の 各 種 の 状 態 を 与 え る 。 こ れ ら の フ ァ イ ル の 内 容 は ASCII 形 式 な の で 、 cat(1) で 読 み 出 せ る 。 と は い え 基 本 コ マ ン ド の netstat(8) は こ れ ら の フ ァ イ ル の 内 容 の よ り す っ き り と し た 表 示 を 提 供 す る 。
/proc/net/arp
ア ド レ ス 解 決 に 使 わ れ る カ ー ネ ル の ARP テ ー ブ ル の ASCII 可 読 な ダ ン プ を 保 持 し て い る 。 動 的 結 合 さ れ た も の と 固 定 (preprogrammed) の 両 方 の APP エ ン ト リ ー を 見 る こ と が で き る 。 フ ォ ー マ ッ ト は 以 下 の と お り :

IP address     HW type   Flags     HW address          Mask   Device
192.168.0.50   0x1       0x2       00:50:BF:25:68:F3   *      eth0
192.168.0.250  0x1       0xc       00:00:00:00:00:00   *      eth0こ こ で

IP address は マ シ ン の IPv4 ア ド レ ス 、 HW type は そ の ア ド レ ス の RFC 826 で 定 め ら れ て い る ハ ー ド ウ ェ ア の 形 式 、 Flags は ARP 構 造 体 (/usr/include/linux/if_arp.h 内 で 定 義 さ れ て い る ) の 内 部 フ ラ グ 、 HW address は そ の IP ア ド レ ス に マ ッ プ さ れ て い る デ ー タ リ ン ク 層 の ア ド レ ス (も し わ か っ て い れ ば ) で あ る 。

/proc/net/dev 擬 似 フ ァ イ ル dev は ネ ッ ト ワ ー ク デ バ イ ス の 状 態 情 報 を 含 ん で い る 。 こ れ は 送 受 信 し た パ ケ ッ ト 数 、 エ ラ ー と コ リ ジ ョ ン (collision) の 回 数 、 そ の 他 の 基 本 的 な 統 計 を 与 え る 。 こ れ ら は ifconfig(8) が デ バ イ ス の 状 態 を 報 告 す る の に 使 わ れ る 。 フ ォ ー マ ッ ト は 以 下 の と お り :

Inter−|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo: 2776770   11307    0    0    0     0          0         0  2776770   11307    0    0    0     0       0          0
  eth0: 1215645    2751    0    0    0     0          0         0  1782404    4324    0    0    0   427       0          0
  ppp0: 1622270    5552    1    0    0     0          0         0   354130    5669    0    0    0     0       0          0
  tap0:    7714      81    0    0    0     0          0         0     7714      81    0    0    0     0       0          0

/proc/net/dev_mcast

/usr/src/linux/net/core/dev_mcast.c で 定 義 さ れ て お り 、 以 下 の 形 式 で あ る 。

indx interface_name dmi_u dmi_g dmi_address
2 eth0 1 0 01005e000001
3 eth1 1 0 01005e000001
4 eth2 1 0 01005e000001

/proc/net/igmp

Internet Group Management Protocol (イ ン タ ー ネ ッ ト グ ル ー プ 管 理 プ ロ ト コ ル )。 /usr/src/linux/net/core/igmp.c で 定 義 さ れ て い る 。

/proc/net/rarp こ の フ ァ イ ル は arp と 同 じ フ ォ ー マ ッ ト で 逆 ア ド レ ス 解 決 サ ー ビ ス (reverse address lookup services) rarp(8) に 提 供 す る た め に 使 わ れ る 現 在 の 逆 マ ッ プ デ ー タ ベ ー ス の 内 容 を 含 ん で い る 。 RARP が カ ー ネ ル コ ン フ ィ グ レ ー シ ョ ン に 設 定 さ れ て い な け れ ば 、 こ の フ ァ イ ル は 存 在 し な い 。
/proc/net/raw

RAW ソ ケ ッ ト テ ー ブ ル の ダ ン プ を 保 持 し て い る 。 ほ と ん ど の 情 報 は デ バ ッ グ 以 外 で は 使 わ れ な い 。 "sl" の 値 は ソ ケ ッ ト の カ ー ネ ル ハ ッ シ ュ ス ロ ッ ト 、 "local_address" は ロ ー カ ル ア ド レ ス と プ ロ ト コ ル 番 号 の ペ ア [訳 者 追 加 : "rem_address" は リ モ ー ト ア ド レ ス と プ ロ ト コ ル 番 号 の ペ ア ]。 "st" は ソ ケ ッ ト の 内 部 状 態 。 "tx_queue" と "rx_queue" は カ ー ネ ル メ モ リ ー を 消 費 し て い る 送 信 /受 信 デ ー タ キ ュ ー の サ イ ズ 。 "tr" と "tm−>when" と "rexmits" フ ィ ー ル ド は RAW で は 使 わ れ て い な い 。 "uid" フ ィ ー ル ド は ソ ケ ッ ト 生 成 者 の 実 効 UID を 保 持 し て い る 。

/proc/net/snmp こ の フ ァ イ ル は SNMP エ ー ジ ェ ン ト が 必 要 と す る IP, ICMP, TCP, UDP 管 理 情 報 を ASCII デ ー タ と し て 保 持 し て い る 。
/proc/net/tcp

TCP ソ ケ ッ ト テ ー ブ ル の ダ ン プ を 保 持 し て い る 。 大 部 分 の 情 報 は デ バ ッ グ 以 外 に は 使 わ れ な い 。 sl は ソ ケ ッ ト の カ ー ネ ル ハ ッ シ ュ ス ロ ッ ト の 値 、 "local_address" は ロ ー カ ル ア ド レ ス と ポ ー ト 番 号 の ペ ア で あ る 。 (ソ ケ ッ ト が 接 続 し て い る 場 合 は ) "rem_address" は リ モ ー ト ア ド レ ス と ポ ー ト 番 号 の 対 で あ る 。 "st" は ソ ケ ッ ト の 内 部 状 態 で あ る 。 "tx_queue" と "rx_queue" は カ ー ネ ル メ モ リ ー を 消 費 し て い る 送 信 /受 信 デ ー タ キ ュ ー の サ イ ズ 。 "tr" と "tm−>when" と "rexmits" フ ィ ー ル ド は ソ ケ ッ ト 状 態 の カ ー ネ ル 内 部 情 報 を 保 持 し て い る が 、 こ れ ら が 役 に 立 つ の は デ バ ッ グ の と き だ け で あ る 。 "uid" フ ィ ー ル ド は ソ ケ ッ ト 生 成 者 の 実 効 UID を 保 持 し て い る 。

/proc/net/udp

UDP ソ ケ ッ ト テ ー ブ ル の ダ ン プ を 保 持 し て い る 。 大 部 分 の 情 報 は デ バ ッ グ 以 外 に は 使 わ れ な い 。 sl は ソ ケ ッ ト の カ ー ネ ル ハ ッ シ ュ ス ロ ッ ト の 値 、 "local_address" は ロ ー カ ル ア ド レ ス と ポ ー ト 番 号 の ペ ア で あ る 。 (ソ ケ ッ ト が 接 続 し て い る 場 合 は ) "rem_address" は リ モ ー ト ア ド レ ス と ポ ー ト 番 号 の ペ ア で あ る 。 "st" は ソ ケ ッ ト の 内 部 状 態 で あ る 。 "tx_queue" と "rx_queue" は カ ー ネ ル メ モ リ ー を 消 費 し て い る 送 信 /受 信 デ ー タ キ ュ ー の サ イ ズ 。 "tr" と "tm−>when" と "rexmits" フ ィ ー ル ド は UDP で は 使 わ れ て い な い 。 "uid" フ ィ ー ル ド は ソ ケ ッ ト 生 成 者 の 実 効 UID を 保 持 し て い る 。 フ ォ ー マ ッ ト は 以 下 の と お り :

sl  local_address rem_address   st tx_queue rx_queue tr rexmits  tm−>when uid
 1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0
 1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0
 1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0

/proc/net/unix

UNIX ド メ イ ン ソ ケ ッ ト の リ ス ト 。 フ ォ ー マ ッ ト は 以 下 の と お り :

Num RefCount Protocol Flags    Type St Path
 0: 00000002 00000000 00000000 0001 03
 1: 00000001 00000000 00010000 0001 01 /dev/printerこ こ で 、

Num は カ ー ネ ル の テ ー ブ ル ス ロ ッ ト 数 、 RefCount は ソ ケ ッ ト を 使 用 し て い る ユ ー ザ ー 数 、 Protocol は い ま の と こ ろ い つ も 0 で 、 Flags は ソ ケ ッ ト の 状 態 を 保 持 し て い る カ ー ネ ル 内 部 の フ ラ グ で あ る 。 Type は い ま の と こ ろ い つ も 1 (UNIX ド メ イ ン の デ ー タ グ ラ ム ソ ケ ッ ト は 、 現 在 の カ ー ネ ル で は サ ポ ー ト さ れ て い な い [訳 注 : 2.0.34 で は サ ポ ー ト さ れ て い る よ う だ ])。 St は ソ ケ ッ ト の 内 部 状 態 で 、 Path は (も し あ れ ば ) ソ ケ ッ ト の パ ス 名 で あ る 。

/proc/net/netfilter/nfnetlink_queue こ の フ ァ イ ル は netfilter ユ ー ザ ー 空 間 キ ュ ー イ ン グ が 使 用 さ れ て い る 場 合 netfilter ユ ー ザ ー 空 間 キ ュ ー イ ン グ の 情 報 を 表 示 す る 。 各 行 が 各 キ ュ ー の 情 報 を 表 示 す る 。 ユ ー ザ ー 空 間 で 購 読 さ れ て い な い キ ュ ー は 表 示 さ れ な い 。

1 4207 0 2 65535 0 0 0 1
(1) (2) (3)(4) (5) (6) (7) (8) 各 行 の フ ィ ー ル ド は 以 下 の 通 り で あ る 。

(1) キ ュ ー の

ID。 こ れ は iptables(8) NFQUEUE タ ー ゲ ッ ト の

−−queue−num−−queue−balance オ プ シ ョ ン で 指 定 さ れ た 値 と 一 致 す る 。 詳 し い 情 報 は iptables−extensions(8) を 参 照 。

(2) キ ュ ー を 購 読 し て い る

netlink ポ ー ト ID。

(3) 現 在 キ ュ ー に 入 っ て い て

ア プ リ ケ ー シ ョ ン が 処 理 す る の を 待 っ て い る パ ケ ッ ト 数 。

(4) キ ュ ー の コ ピ ー モ ー ド 。 値 は

1 (メ タ デ ー タ の み ) か 2 (ペ イ

ロ ー ド デ ー タ も ユ ー ザ ー 空 間 に コ ピ ー す る ) の い ず れ か で あ る 。

(5) コ ピ ー す る 範 囲 。 つ ま り 、 最 大 で 何 バ イ ト の パ ケ ッ ト ペ イ ロ ー ド を ユ ー ザ ー 空 間 に コ ピ ー す る 必 要 が あ る か を 示 す 。

(6) キ ュ ー で の 破 棄 数 。 す で に 多 数 の パ ケ ッ ト が ユ ー ザ ー 空 間 が 必 ず 必 要 な 受 け 入 れ

/破 棄 の 判 定 を 送 り 返 す の を 待 っ て い た た め 、 カ ー ネ ル が ド ロ ッ プ す る 必 要 が あ っ た パ ケ ッ ト 数 。

(7) キ ュ ー の ユ ー ザ ー で の ド ロ ッ プ 数 。

netlink サ ブ シ ス テ ム 内 で 破

棄 さ れ た パ ケ ッ ト 数 。 こ の よ う な パ ケ ッ ト の 破 棄 が 通 常 起 こ る の は 、 対 応 す る ソ ケ ッ ト バ ッ フ ァ ー が 一 杯 の 場 合 、 つ ま り 、 ユ ー ザ ー 空 間 が メ ッ セ ー ジ を 十 分 な 速 度 で 読 み 出 せ な い 場 合 で あ る 。

(8) シ ー ケ ン ス 番 号 。 キ ュ ー に 入 っ た す べ て の パ ケ ッ ト に は

32 ビ ッ

ト の 単 調 増 加 の シ ー ケ ン ス 番 号 が 関 連 付 け ら れ る 。 こ れ は 一 番 最 近 キ ュ ー に 入 っ た パ ケ ッ ト の ID と な る 。 最 後 の 数 字 は 互 換 性 の た め だ け に 存 在 し 、 常 に 1 で あ る 。

/proc/partitions 各 パ ー テ ィ シ ョ ン の メ ジ ャ ー 番 号 と マ イ ナ ー 番 号 が 書 か れ て い る 。 さ ら に 、 1024 バ イ ト ブ ロ ッ ク 数 と パ ー テ ィ シ ョ ン 名 も 書 か れ て い る 。
/proc/pci
カ ー ネ ル の 初 期 化 時 に 見 つ か っ た す べ て の PCI デ バ イ ス の リ ス ト と そ の 設 定 。 こ の フ ァ イ ル は 非 推 奨 で あ り 、 新 し い PCI 用 の /proc イ ン タ ー フ ェ イ ス (/proc/bus/pci) を 使 う こ と 。 こ の フ ァ イ ル は Linux 2.2 で オ プ シ ョ ン に な っ た (カ ー ネ ル の コ ン パ イ ル 時 に CONFIG_PCI_OLD_PROC を セ ッ ト す る と 利 用 可 能 で あ っ た )。 Linux 2.4 で 再 び オ プ シ ョ ン な し で 有 効 に 戻 っ た 。 さ ら に 、 Linux 2.6 で 非 推 奨 と な り (CONFIG_PCI_LEGACY_PROC を セ ッ ト す る と ま だ 利 用 可 能 で あ っ た )、 最 終 的 に Linux 2.6.17 以 降 で 完 全 に 削 除 さ れ た 。
/proc/profile
(Linux 2.4 以 降 ) こ の フ ァ イ ル は 、 カ ー ネ ル が profile=1 コ マ ン ド ラ イ ン オ プ シ ョ ン で 起 動 さ れ た 場 合 に の み 存 在 す る 。 こ の フ ァ イ ル は 、 カ ー ネ ル の プ ロ フ ァ イ リ ン グ 情 報 を readprofile(1) を 使 っ て 読 み 込 め る バ イ ナ リ 形 式 で 公 開 す る 。 こ の フ ァ イ ル に (例 え ば 、 空 の 文 字 列 を ) 書 き 込 む と 、 プ ロ フ ァ イ リ ン グ カ ウ ン タ ー が リ セ ッ ト さ れ る 。 い く つ か の ア ー キ テ ク チ ャ ー で は 、 サ イ ズ sizeof(int) の バ イ ナ リ 整 数 で あ る 「 プ ロ フ ァ イ リ ン グ 倍 率 」 を 書 き 込 む と プ ロ フ ァ イ リ ン グ の 割 り 込 み 頻 度 を 設 定 で き る 。
/proc/scsi

scsi 中 間 レ ベ ル 擬 似 フ ァ イ ル と い く つ か の SCSI 低 レ ベ ル ド ラ イ バ の デ ィ レ ク ト リ を 含 む デ ィ レ ク ト リ 。 こ れ ら の フ ァ イ ル は ASCII で 表 現 さ れ て い る の で cat(1) で 読 め る 。 い く つ か の フ ァ イ ル は 書 き 込 み 可 能 で 、 サ ブ シ ス テ ム の 設 定 を 変 更 し た り 、 特 定 の 機 能 を オ ン /オ フ す る こ と が で き る 。

/proc/scsi/scsi カ ー ネ ル が 知 っ て い る す べ て の SCSI デ バ イ ス の リ ス ト 。 こ の リ ス ト は 起 動 時 に (コ ン ソ ー ル で ) 見 ら れ る も の と ほ ぼ 同 じ で あ る 。 scsi は 現 在 の と こ ろ add−single−device コ マ ン ド の み を サ ポ ー ト し て い る 。 こ れ に よ り ル ー ト (root) は 既 知 の デ バ イ ス リ ス ト へ 活 線 挿 抜 (hotplugged) デ バ イ ス を 加 え る こ と が で き る 。 次 の コ マ ン ド を 実 行 す る と 、

echo 'scsi add−single−device 1 0 5 0' > /proc/scsi/scsi ホ ス ト ア ダ プ タ ー scsi1 は SCSI チ ャ ネ ル 0 で ID 5 LUN 0 の デ バ イ ス を 探 す 。 も し こ の ア ド レ ス に 既 知 の デ バ イ ス が あ る か 、 不 正 な ア ド レ ス で あ っ た な ら ば エ ラ ー が 返 る 。

/proc/scsi/[drivername] い ま の と こ ろ [drivername] は NCR53c7xx, aha152x, aha1542, aha1740, aic7xxx, buslogic, eata_dma, eata_pio, fdomain, in2000, pas16, qlogic, scsi_debug, seagate, t128, u15−24f, ultrastore, wd7000 の ど れ か で あ る 。 少 な く と も 1 つ の SCSI ホ ス ト バ ス ア ダ プ タ ー (HBA) に ド ラ イ バ が 割 り 当 て ら れ て い る と 、 そ の ド ラ イ バ に 対 応 し た デ ィ レ ク ト リ が 現 れ る 。 そ れ ぞ れ の デ ィ レ ク ト リ に は 、 登 録 さ れ た ホ ス ト ア ダ プ タ ー に 対 応 し て フ ァ イ ル が 作 ら れ る 。 こ の フ ァ イ ル の 名 前 は 、 シ ス テ ム の 初 期 化 の 際 に ホ ス ト ア ダ プ タ ー に 割 り 当 て ら れ た 番 号 に な る 。 こ れ ら の フ ァ イ ル を 読 め ば ド ラ イ バ と ホ ス ト ア ダ プ タ ー の 設 定 や 統 計 な ど を 見 る こ と が で き る 。 こ れ ら の フ ァ イ ル へ の 書 き 込 み は ホ ス ト ア ダ プ タ ー ご と に 異 な る 動 作 を 引 き 起 こ す 。 た と え ば latencynolatency コ マ ン ド を 用 い る と 、 ル ー ト (root、 ス ー パ ー ユ ー ザ ー ) は eata_dma ド ラ イ バ の 隠 し 測 定 コ ー ド の オ ン /オ フ を 切 り 替 え る こ と が で き る 。 ま た lockupunlock コ マ ン ド を 用 い る と 、 ル ー ト は scsi_debug ド ラ イ バ が シ ミ ュ レ ー ト す る バ ス ロ ッ ク ア ッ プ (bus lockup) を 制 御 す る こ と が で き る 。
/proc/self
こ の デ ィ レ ク ト リ は プ ロ セ ス に (プ ロ セ ス 自 身 の ) /proc フ ァ イ ル シ ス テ ム へ の ア ク セ ス を 参 照 さ せ る 。 こ れ は /proc 内 の (こ の プ ロ セ ス の ) プ ロ セ ス ID が 名 前 と な っ て い る デ ィ レ ク ト リ と 全 く 同 一 で あ る 。
/proc/slabinfo

Linux 2.6.16 以 降 で は 、 カ ー ネ ル 設 定 オ プ シ ョ ン CONFIG_SLAB が 有 効 の 場 合 に の み 、 こ の フ ァ イ ル は 存 在 す る 。 カ ー ネ ル キ ャ ッ シ ュ の 情 報 。 /proc/slabinfo の フ ィ ー ル ド は 以 下 の と お り 。

cache−name
num−active−objs
total−objs
object−size
num−active−slabs
total−slabs
num−pages−per−slab 詳 細 は slabinfo(5) を 参 照 す る こ と 。

/proc/stat カ ー ネ ル /シ ス テ ム の 統 計 。 ア ー キ テ ク チ ャ ー に よ っ て 異 な る 。 共 通 エ ン ト リ ー に は 以 下 の も の が 含 ま れ る 。

cpu 3357 0 4313 1362393 各 種 状 態 で 消 費 さ れ た 時 間 の 合 計 値 。 時 間 は USER_HZ を 単 位 と し て 計 測 さ れ る (ほ と ん ど の ア ー キ テ ク チ ャ ー で は USER_HZ は 1/100 秒 で 、 正 し い 値 は sysconf(_SC_CLK_TCK) を 使 っ て 取 得 で き る )。

user

(1) ユ ー ザ ー モ ー ド で 消 費 し た 時 間 。

nice

(2) 低 い 優 先 度 (nice) の ユ ー ザ ー モ ー ド で 消 費 し た 時 間 。

system

(3) シ ス テ ム モ ー ド で 消 費 し た 時 間 。

idle

(4) タ ス ク 待 ち (idle task) で 消 費 し た 時 間 。 こ の 値 は 擬 似 フ ァ イ ル /proc/uptime の 2 番 目 の エ ン ト リ ー の 値 を USER_HZ 倍 し た 値 に な る は ず で あ る 。

iowait (Linux 2.5.41 以 降 )

(5) I/O の 完 了 待 ち の 時 間 。

irq (Linux 2.6.0−test4 以 降 )

(6) 割 り 込 み の 処 理 に 使 っ た 時 間 。

softirq (Linux 2.6.0−test4 以 降 )

(7) ソ フ ト 割 り 込 み の 処 理 に 使 っ た 時 間 。

steal (Linux 2.6.11 以 降 )

(8) 盗 ま れ た 時 間 (stolen time)。 仮 想 化 環 境 で の 動 作 時 に 他 の オ ペ レ ー テ ィ ン グ シ ス テ ム に よ り 消 費 さ れ た 時 間 で あ る 。

guest (Linux 2.6.24 以 降 )

(9) Linux カ ー ネ ル の 制 御 下 の ゲ ス ト オ ペ レ ー テ ィ ン グ シ ス テ ム の 仮 想 CPU の 実 行 に 消 費 さ れ た 時 間 。

guest_nice (Linux 2.6.33 以 降 )

(10) nice が 適 用 さ れ た ゲ ス ト (Linux カ ー ネ ル の 制 御 下 の ゲ ス ト オ ペ レ ー テ ィ ン グ シ ス テ ム の 仮 想 CPU) の 実 行 に 消 費 さ れ た 時 間 。

page 5741 1808 シ ス テ ム が (デ ィ ス ク か ら ) ペ ー ジ イ ン /ペ ー ジ ア ウ ト し た ペ ー ジ 数 。
swap 1 0
ス ワ ッ プ イ ン /ス ワ ッ プ ア ウ ト さ れ た ペ ー ジ 数 。
intr 1462898
こ の 行 は シ ス テ ム 起 動 時 以 降 に 処 理 さ れ た 割 り 込 み の 回 数 を 示 す 。 最 初 の 欄 は 処 理 さ れ た 割 り 込 み 全 て の 合 計 で あ り 、 こ れ に は 番 号 が 割 り 振 ら れ て い な い ア ー キ テ ク チ ャ ー 固 有 の 割 り 込 み も 含 ま れ る 。 そ れ 以 降 の 欄 は そ れ ぞ れ 番 号 が 割 り 振 ら れ た 割 り 込 み に つ い て の 合 計 で あ る 。 番 号 が 割 り 振 ら れ て い な い 割 り 込 み は 表 示 さ れ ず 、 全 体 の 合 計 に の み 加 算 さ れ る 。
disk_io: (2,0):(31,30,5764,1,2) (3,0):
...

(メ ジ ャ ー 番 号 , デ ィ ス ク イ ン デ ッ ク ス 番 号 ):(情 報 な し (noinfo), 読 み 込 み 回 数 , 読 み 込 み ブ ロ ッ ク 数 , 書 き 出 し 回 数 , 書 き 出 し ブ ロ ッ ク 数 )
(Linux 2.4 の み )

ctxt 115315 コ ン テ ク ス ト ス イ ッ チ の 延 べ 回 数 。
btime 769041601
起 動 時 刻 、 紀 元 (Epoch; 1970−01−01 00:00:00 +0000 (UTC)) か ら の 秒 数 。
processes 86031
シ ス テ ム 起 動 時 か ら の 延 べ フ ォ ー ク (fork) 数 。
procs_running 6
実 行 中 状 態 の プ ロ セ ス 数 (Linux 2.5.45 以 降 )。
procs_blocked 2

I/O 完 了 待 ち で 停 止 (blocked) し て い る プ ロ セ ス 数 (Linux 2.5.45 以 降 )。

/proc/swaps 使 用 中 の ス ワ ッ プ 領 域 。 swapon(8) も 参 照 す る こ と 。
/proc/sys
こ の デ ィ レ ク ト リ (1.3.57 以 降 に 存 在 ) は カ ー ネ ル 変 数 に 対 応 す る い く つ か の フ ァ イ ル と サ ブ デ ィ レ ク ト リ を 含 む 。 こ れ ら の 変 数 は 読 み 出 し 可 能 で あ る 。 ま た 場 合 に よ っ て は /proc フ ァ イ ル シ ス テ ム や 、 (非 推 奨 の ) シ ス テ ム コ ー ル sysctl(2) を 用 い て 書 き 換 え る こ と も で き る 。
/proc/sys/abi
(Linux 2.4.10 以 降 ) こ の デ ィ レ ク ト リ に は ア プ リ ケ ー シ ョ ン の バ イ ナ リ 情 報 が 入 っ た フ ァ イ ル が 置 か れ る 。 更 に 詳 し い 情 報 は 、 Linux カ ー ネ ル ソ ー ス フ ァ イ ル Documentation/sysctl/abi.txt を 参 照 す る こ と 。
/proc/sys/debug
こ の デ ィ レ ク ト リ は 空 の 場 合 も あ る 。
/proc/sys/dev
こ の デ ィ レ ク ト リ に は デ バ イ ス 特 有 の 情 報 (た と え ば dev/cdrom/info) が 含 ま れ る 。 こ の デ ィ レ ク ト リ が 空 に な っ て い る シ ス テ ム も あ る 。
/proc/sys/fs
こ の デ ィ レ ク ト リ に は 、 フ ァ イ ル シ ス テ ム に 関 連 す る カ ー ネ ル 変 数 用 の デ ィ レ ク ト リ と サ ブ デ ィ レ ク ト リ が 含 ま れ る 。
/proc/sys/fs/binfmt_misc
こ の デ ィ レ ク ト リ 以 下 の フ ァ イ ル に つ い て の ド キ ュ メ ン ト は 、 Linux カ ー ネ ル ソ ー ス の Documentation/binfmt_misc.txt に あ る 。
/proc/sys/fs/dentry−state
(Linux 2.2 以 降 ) こ の フ ァ イ ル に は 、 デ ィ レ ク ト リ キ ャ ッ シ ュ (dcache) の 状 態 に 関 す る 情 報 が 入 っ て い る 。 フ ァ イ ル に は 、 nr_dentry, nr_unused, age_limit (秒 単 位 の age), want_pages (シ ス テ ム が リ ク エ ス ト し た ペ ー ジ 数 ), ダ ミ ー の 2 つ の 値 、 と い う 6 つ の 数 字 が 書 か れ て い る 。

*

nr_dentry は 割 り 当 て ら れ た dentry (dcache エ ン ト リ ー ) の 数 で あ る 。 こ の フ ィ ー ル ド は Linux 2.2 で は 使 用 さ れ な い 。

*

nr_unused は 未 使 用 の dentry 数 で あ る 。

*

age_limit は 、 メ モ リ ー が 不 足 し て い る 場 合 に 次 に dcache entry を 再 要 求 で き る よ う に な る ま で の 残 り 時 間 (秒 数 ) で あ る 。

*

want_pages は 、 カ ー ネ ル が shrink_dcache_pages() を 呼 び 出 し た が dcache が ま だ 縮 小 さ れ て い な い 場 合 に 、 0 以 外 の 値 と な る 。

/proc/sys/fs/dir−notify−enable こ の フ ァ イ ル は fcntl(2) に 記 述 さ れ て い る dnotify イ ン タ ー フ ェ ー ス を シ ス テ ム 全 体 で 無 効 に し た り 有 効 に し た り す る 。 こ の フ ァ イ ル に 値 0 が 書 か れ て い る 場 合 は イ ン タ ー フ ェ ー ス が 無 効 に な り 、 値 1 の 場 合 は 有 効 に な る 。
/proc/sys/fs/dquot−max
こ の フ ァ イ ル に は キ ャ ッ シ ュ さ れ る デ ィ ス ク quota エ ン ト リ ー の 最 大 数 が 書 か れ て い る 。 (2.4 系 の ) シ ス テ ム の 中 に は 、 こ の フ ァ イ ル が 存 在 し な い も の も あ る 。 キ ャ ッ シ ュ さ れ る デ ィ ス ク quota エ ン ト リ ー の 空 き が 非 常 に 少 な く 、 と て も 多 く の シ ス テ ム ユ ー ザ ー が 同 時 に 存 在 す る 場 合 、 こ の 制 限 を 上 げ る と い い か も し れ な い 。
/proc/sys/fs/dquot−nr
こ の フ ァ イ ル に は 割 り 当 て ら れ て い る デ ィ ス ク quota の エ ン ト リ ー 数 と 、 空 い て い る デ ィ ス ク quota の エ ン ト リ ー 数 が 書 か れ て い る 。
/proc/sys/fs/epoll
(Linux 2.6.28 以 降 ) こ の デ ィ レ ク ト リ に は 、 フ ァ イ ル max_user_watches が あ る 。 こ れ ら は 、 epoll イ ン タ ー フ ェ ー ス が 消 費 す る カ ー ネ ル メ モ リ ー 量 を 制 限 す る の に 使 用 で き る 。 詳 細 は epoll(7) を 参 照 。
/proc/sys/fs/file−max
こ の フ ァ イ ル は 、 シ ス テ ム 全 体 で プ ロ セ ス が オ ー プ ン で き る フ ァ イ ル 数 の 上 限 を 定 義 す る (setrlimit(2) も 参 照 ; setrlimit(2) を 使 う と 、 オ ー プ ン で き る フ ァ イ ル 数 の プ ロ セ ス 毎 の 上 限 RLIMIT_NOFILE を 設 定 で き る )。 フ ァ イ ル ハ ン ド ル を 使 い 果 た し た と い う エ ラ ー メ ッ セ ー ジ ("VFS: file−max limit <number> reached" を 探 す と よ い ) が カ ー ネ ル ロ グ に 大 量 に 出 る 場 合 は 、 以 下 の よ う に こ の 値 を 増 加 さ せ て み る と よ い 。

echo 100000 > /proc/sys/fs/file−max 特 権 プ ロ セ ス (CAP_SYS_ADMIN) は file−max 上 限 を 上 書 き で き る 。

/proc/sys/fs/file−nr

This (read−only) file contains three numbers: the number of allocated file handles (i.e., the number of files presently opened); the number of free file handles; and the maximum number of file handles (i.e., the same value as /proc/sys/fs/file−max). If the number of allocated file handles is close to the maximum, you should consider increasing the maximum. Before Linux 2.6, the kernel allocated file handles dynamically, but it didn’t free them again. Instead the free file handles were kept in a list for reallocation; the "free file handles" value indicates the size of that list. A large number of free file handles indicates that there was a past peak in the usage of open file handles. Since Linux 2.6, the kernel does deallocate freed file handles, and the "free file handles" value is always zero.

/proc/sys/fs/inode−max (Linux 2.2 ま で に の み 存 在 ) こ の フ ァ イ ル に は 、 メ モ リ ー 内 inode の 最 大 値 が 書 か れ て い る 。 こ の 値 は file−max の 値 の 3−4 倍 に す べ き で あ る 。 こ れ は stdin, stdout, ネ ッ ト ワ ー ク ソ ケ ッ ト を 扱 う に も inode が 必 要 な た め で あ る 。 日 常 的 に inode を 使 い 果 た し て い る 場 合 は 、 こ の 値 を 増 や す 必 要 が あ る 。

Linux 2.4 以 降 で は 、 inode 数 の 静 的 な 上 限 は な く な り 、 こ の フ ァ イ ル は 削 除 さ れ た 。

/proc/sys/fs/inode−nr こ の フ ァ イ ル に は 、 inode−state の 最 初 の 2 つ の 値 が 書 か れ て い る 。
/proc/sys/fs/inode−state
こ の フ ァ イ ル に は 7 つ の 数 字 が 入 っ て い る 。 nr_inodes, nr_free_inodes, preshrink と 4 つ の ダ ミ ー の 値 (常 に 0) で あ る 。

nr_inodes は シ ス テ ム が 割 り 当 て 済 み の inode 数 で あ る 。 nr_free_inodes は 未 使 用 の inode 数 で あ る 。

preshrink は 、 nr_inodes > inode−max で 、 シ ス テ ム が さ ら に inode を 割 り 当 て る の で は な く inode リ ス ト を 刈 り 取 る (余 分 な も の を 回 収 す る ) 必 要 が あ る 場 合 に 、 0 以 外 に な る 。 Linux 2.4 以 降 で は 、 こ の フ ィ ー ル ド は ダ ミ ー の 値 (常 に 0) で あ る 。

/proc/sys/fs/inotify (Linux 2.6.13 以 降 ) こ の デ ィ レ ク ト リ に は 、 フ ァ イ ル max_queued_events, max_user_instances, and max_user_watches が あ る 。 こ れ ら は 、 inotify イ ン タ ー フ ェ ー ス が 消 費 す る カ ー ネ ル メ モ リ ー 量 を 制 限 す る の に 利 用 で き る 。 詳 細 は inotify(7) を 参 照 。
/proc/sys/fs/lease−break−time
こ の フ ァ イ ル は 、 フ ァ イ ル を 保 持 し て い る プ ロ セ ス に 対 し て カ ー ネ ル が シ グ ナ ル を 送 り 、 他 の プ ロ セ ス が そ の フ ァ イ ル を オ ー プ ン す る の を 待 っ て い る こ と を 通 知 し て か ら 、 そ の プ ロ セ ス に 対 し て カ ー ネ ル が フ ァ イ ル の リ ー ス (lease, 貸 し 出 し ) (fcntl(2) を 参 照 ) を 許 す 猶 予 期 間 を 指 定 す る 。 リ ー ス ホ ル ダ (lease holder: フ ァ イ ル の 貸 し 出 し を 受 け て い る プ ロ セ ス ) が 猶 予 期 間 中 に リ ー ス を 削 除 す る か 階 級 を 低 く し な い 場 合 、 カ ー ネ ル は フ ァ イ ル の リ ー ス を 強 制 的 に 止 め る 。
/proc/sys/fs/leases−enable
こ の フ ァ イ ル は シ ス テ ム 全 体 で の フ ァ イ ル リ ー ス (fcntl(2) を 参 照 ) を 有 効 ま た は 無 効 に す る 。 フ ァ イ ル に 値 0 が 書 き 込 ま れ て い る 場 合 、 リ ー ス は 無 効 で あ る 。 0 以 外 の 場 合 に は リ ー ス は 有 効 で あ る 。
/proc/sys/fs/mqueue
(Linux 2.6.6 以 降 ) こ の デ ィ レ ク ト リ に は フ ァ イ ル msg_max, msgsize_max, and queues_max が あ る 。 こ れ ら は POSIX メ ッ セ ー ジ キ ュ ー で 使 用 さ れ る リ ソ ー ス の 制 御 を 行 う 。 詳 細 は mq_overview(7) を 参 照 。
/proc/sys/fs/nr_open
(Linux 2.6.25 以 降 )

This file imposes ceiling on the value to which the RLIMIT_NOFILE resource limit can be raised (see getrlimit(2)). This ceiling is enforced for both unprivileged and privileged process. The default value in this file is 1048576. (Before Linux 2.6.25, the ceiling for RLIMIT_NOFILE was hard−coded to the same value.)

/proc/sys/fs/overflowgid/proc/sys/fs/overflowuid こ れ ら の フ ァ イ ル に よ り 、 ユ ー ザ ー は 固 定 UID と 固 定 GID の 値 を 変 更 で き る 。 デ フ ォ ル ト は 65534 で あ る 。 Linux の UID と GID は 32 ビ ッ ト で あ る が 、 16 ビ ッ ト の UID と GID し か サ ポ ー ト し な い フ ァ イ ル シ ス テ ム も あ る 。 こ の よ う な フ ァ イ ル シ ス テ ム が 書 き 込 み を 許 可 し て マ ウ ン ト さ れ た 場 合 、 65535 を 超 え る UID と GID は 、 デ ィ ス ク に 書 き 込 ま れ る 前 に オ ー バ ー フ ロ ー 値 に 変 換 さ れ る 。
/proc/sys/fs/pipe−max−size
(Linux 2.6.35 以 降 ) こ の フ ァ イ ル の 値 に よ り 、 fcntl(2)F_SETPIPE_SZ 操 作 で 増 や す こ と が で き る パ イ プ 容 量 の 上 限 値 が 定 義 さ れ る 。 こ の 上 限 は 非 特 権 プ ロ セ ス に の み 適 用 さ れ る 。 こ の フ ァ イ ル の デ フ ォ ル ト 値 は 1,048,576 で あ る 。 こ の フ ァ イ ル に 設 定 し た 値 は 切 り 上 げ ら れ て 、 実 装 側 で 利 用 す る の に 都 合 の よ い 値 に 変 更 さ れ る 場 合 が あ る 。 切 り 上 げ ら れ た 値 を 確 認 す る に は 、 値 を 設 定 し た 後 で こ の フ ァ イ ル の 内 容 を 表 示 す れ ば よ い 。 こ の フ ァ イ ル に 設 定 で き る 最 小 値 は シ ス テ ム の ペ ー ジ サ イ ズ で あ る 。
/proc/sys/fs/protected_hardlinks
(Linux 3.6 以 降 ) こ の フ ァ イ ル の 値 が 0 の 場 合 、 ハ ー ド リ ン ク の 作 成 に は 何 の 制 限 も 適 用 さ れ な い (す な わ ち 、 Linux 3.6 よ り 前 の 伝 統 的 な 動 作 で あ る )。 こ の フ ァ イ ル の 値 が 1 の 場 合 、 以 下 の 条 件 の い ず れ か 一 つ が 成 立 す る 場 合 に の み 、 リ ン ク 先 の フ ァ イ ル へ の ハ ー ド リ ン ク が 作 成 で き る 。

* 呼 び 出 し 元 が

CAP_FOWNER ケ ー パ ビ リ テ ィ を 持 っ て い る 。

* そ の リ ン ク を 作

成 中 の プ ロ セ ス の フ ァ イ ル シ ス テ ム UID が 、 リ ン ク 先 フ ァ イ ル の 所 有 者 (UID) と 一 致 す る (credentials(7) に 説 明 が あ る が 、 通 常 、 プ ロ セ ス の フ ァ イ ル シ ス テ ム UID は プ ロ セ ス の 実 効 UID と 同 じ で あ る )。
*

以 下 の 条 件 が 全 て 成 立 す る 。

• リ ン ク 先 が 通 常 の フ ァ イ ル で あ る 。

• リ ン ク 先 フ ァ イ ル で

set−user−ID 許 可 ビ ッ ト が 有 効 に な っ て い な い 。

• リ ン ク 先 フ ァ イ ル で 、 許 可 ビ ッ ト

set−group−ID と

group−executable が 同 時 に 有 効 に な っ て い な い 。

• 呼 び 出 し 元 は 、 リ ン ク 先 フ ァ イ ル の 読 み 出 し 、 書 き 込 み 許 可 を 持 っ て い る

(フ ァ イ ル の 許 可 マ ス ク で 許 可 さ れ て い る か 、 適 切 な ケ ー パ ビ リ テ ィ を 持 っ て い る か は 問 わ な い )。

The default value in this file is 0. Setting the value to 1 prevents a longstanding class of security issues caused by hard−link−based time−of−check, time−of−use races, most commonly seen in world−writable directories such as /tmp. The common method of exploiting this flaw is to cross privilege boundaries when following a given hard link (i.e., a root process follows a hard link created by another user). Additionally, on systems without separated partitions, this stops unauthorized users from "pinning" vulnerable set−user−ID and set−group−ID files against being upgraded by the administrator, or linking to special files.

/proc/sys/fs/protected_symlinks (Linux 3.6 以 降 ) こ の フ ァ イ ル の 値 が 0 の 場 合 、 以 下 の シ ン ボ リ ッ ク リ ン ク を 辿 る 際 に 何 の 制 限 も 適 用 さ れ な い (す な わ ち 、 Linux 3.6 よ り 前 の 伝 統 的 な 動 作 で あ る )。 こ の フ ァ イ ル の 値 が 1 の 場 合 、 以 下 の 状 況 に お い て の み シ ン ボ リ ッ ク リ ン ク が 辿 ら れ る 。

* そ の リ ン ク を 辿 っ て い る プ ロ セ ス の フ ァ イ ル シ ス テ ム

UID が 、 シ

ン ボ リ ッ ク リ ン ク の 所 有 者 (UID) と 一 致 す る (credentials(7) に 説 明 が あ る が 、 通 常 、 プ ロ セ ス の フ ァ イ ル シ ス テ ム UID は プ ロ セ ス の 実 効 UID と 同 じ で あ る )。

* そ の リ ン ク が

world−writable の sticky ビ ッ ト が セ ッ ト さ れ た

デ ィ レ ク ト リ で は な い 。

* シ ン ボ リ ッ ク リ ン ク と そ の 親 デ ィ レ ク ト リ が 同 じ 所 有 者

(UID) で あ

る 。 シ ス テ ム コ ー ル が 上 記 の 制 約 に よ り シ ン ボ リ ッ ク リ ン ク を 辿 れ な か っ た 場 合 は 、 errno に エ ラ ー EACCES が 設 定 さ れ る 。

The default value in this file is 0. Setting the value to 1 avoids a longstanding class of security issues based on time−of−check, time−of−use races when accessing symbolic links.

/proc/sys/fs/suid_dumpable (Linux 2.6.13 以 降 ) こ の フ ァ イ ル の 値 に よ り 、 set−user−ID さ れ た バ イ ナ リ や 、 保 護 が か か っ た (protected) バ イ ナ リ / tainted な (汚 染 さ れ た ; ラ イ セ ン ス が カ ー ネ ル と 適 合 し な い ) バ イ ナ リ に 対 し て 、 コ ア ダ ン プ フ ァ イ ル を 生 成 す る か ど う か が 決 定 さ れ る 。 以 下 の 3つ の 値 を 指 定 す る こ と が で き る :

0 (default) こ の 値 を 指 定 す る と 、 以 前 と 同 じ (Linux 2.6.13 よ り 前 の ) 動 作 を す る 。 (seteuid(2), setgid(2) な ど を 呼 び 出 す こ と や 、 set−user−ID や set−group−ID さ れ た プ ロ グ ラ ム を 実 行 す る こ と で ) 資 格 情 報 (credentials) が 変 更 さ れ て い る プ ロ セ ス や 、 プ ロ セ ス の 実 行 バ イ ナ リ の 読 み 出 し 許 可 が な い プ ロ セ ス に 対 し て 、 コ ア ダ ン プ を 生 成 し な い 。
1 ("debug")
す べ て の プ ロ セ ス で 、 可 能 で あ れ ば コ ア ダ ン プ を 行 う 。 コ ア ダ ン プ フ ァ イ ル の 所 有 者 は 、 ダ ン プ を 行 う プ ロ セ ス の フ ァ イ ル シ ス テ ム UID と な り 、 セ キ ュ リ テ ィ 上 の 考 慮 は 行 わ れ な い 。 こ の 値 は 、 シ ス テ ム デ バ ッ グ の 場 面 だ け を 想 定 し て 設 け ら れ て い る 。 ptrace の チ ェ ッ ク も 行 わ れ な い 。
2 ("suidsafe")
通 常 は ダ ン プ さ れ な い よ う な バ イ ナ リ (上 記 の "0" 参 照 ) を root だ け が 読 み 出 し 可 能 な 形 で ダ ン プ す る 。 こ の 場 合 、 ユ ー ザ ー は そ の コ ア ダ ン プ フ ァ イ ル を 削 除 す る こ と は で き る が 、 読 む こ と は で き な い 。 セ キ ュ リ テ ィ 上 の 理 由 か ら 、 こ の モ ー ド の コ ア ダ ン プ で は 、 既 存 の ダ ン プ フ ァ イ ル や 他 の フ ァ イ ル を 上 書 き す る こ と は な い 。 こ の モ ー ド は 、 管 理 者 が 通 常 の 環 境 で 問 題 を 解 析 し よ う と す る 際 に 適 し て い る 。 さ ら に 、 Linux 3.6 以 降 で は 、 /proc/sys/kernel/core_pattern は 絶 対 パ ス 名 か パ イ プ コ マ ン ド で な け れ ば な ら な い 。 core(5) に 詳 し い 説 明 が あ る 。 core_pattern が こ れ ら の ル ー ル に 合 致 し な い 場 合 は 、 警 告 が カ ー ネ ル ロ グ に 書 き 込 ま れ 、 コ ア ダ ン プ は 生 成 さ れ な い 。 こ の フ ァ イ ル は ス ー パ ブ ロ ッ ク の 値 を 制 御 す る 。 こ の 値 は カ ー ネ ル が マ ウ ン ト で き る フ ァ イ ル シ ス テ ム の 最 大 値 に な る 。 現 在 、 super−max で 許 可 さ れ て い る フ ァ イ ル シ ス テ ム 数 以 上 に マ ウ ン ト す る 必 要 が あ る 場 合 は 、 こ の 値 を 増 加 さ せ る だ け で よ い 。

/proc/sys/fs/super−nr こ の フ ァ イ ル に は 現 在 マ ウ ン ト さ れ て い る フ ァ イ ル シ ス テ ム 数 が 書 か れ て い る 。
/proc/sys/kernel
こ の デ ィ レ ク ト リ に は 、 以 下 で 説 明 す る 様 々 な カ ー ネ ル パ ラ メ ー タ ー を 制 御 す る た め の フ ァ イ ル が 配 置 さ れ て い る 。
/proc/sys/kernel/acct
こ の フ ァ イ ル に は 3 つ の 値 が 含 ま れ て い る : highwater, lowwater, frequency で あ る 。 BSD−style process accounting が 有 効 に な っ て い る 場 合 、 こ れ ら 3 つ の 値 が 動 作 を 制 御 す る 。 ロ グ フ ァ イ ル の あ る フ ァ イ ル シ ス テ ム の 空 き 領 域 が lowwater パ ー セ ン ト 以 下 に な っ た 場 合 は 、 ロ グ 記 録 を 一 時 停 止 す る 。 空 き 領 域 が highwater パ ー セ ン ト 以 上 に な っ た 場 合 に 、 ロ グ 記 録 を 再 開 す る 。 frequency は カ ー ネ ル が 空 き 領 域 の チ ェ ッ ク を す る 頻 度 で あ る (単 位 は 秒 )。 デ フ ォ ル ト の 値 は 、 4, 2, 30 で あ る 。 つ ま り 、 空 き 領 域 が 2% 以 下 に な る と ロ グ 記 録 を 一 時 停 止 し 、 空 き 領 域 が 4% 以 上 と な っ た と き に 再 開 す る 。 空 き 領 域 に つ い て の 情 報 は 30 秒 間 有 効 で あ る 点 に 注 意 す る こ と 。
/proc/sys/kernel/cap_last_cap
(Linux 3.2 以 降 )

capabilities(7) 参 照 。

/proc/sys/kernel/cap−bound (Linux 2.2 to 2.6.24 以 降 )

/proc/sys/kernel/cap−bound こ の フ ァ イ ル に は カ ー ネ ル の capability bounding set (符 号 付 き 10 進 数 表 現 ) の 値 が 書 か れ て い る 。 execve(2) 中 は 、 こ の セ ッ ト と プ ロ セ ス に 許 可 さ れ て い る 権 限 の AND が と ら れ る 。 Linux 2.6.25 以 降 で は 、 シ ス テ ム 全 体 の ケ ー パ ビ リ テ ィ バ ウ ン デ ィ ン グ セ ッ ト は な く な り 、 ス レ ッ ド 単 位 の バ ウ ン デ ィ ン グ セ ッ ト に 置 き 換 え ら れ た 。 capabilities(7) を 参 照 。

/proc/sys/kernel/core_pattern

core(5) 参 照 。

/proc/sys/kernel/core_uses_pid

core(5) 参 照 。

/proc/sys/kernel/ctrl−alt−del こ の フ ァ イ ル は キ ー ボ ー ド の Ctrl−Alt−Del の 扱 い を 制 御 す る 。 こ の フ ァ イ ル に あ る 値 が 0 の 場 合 、 Ctrl−Alt−Del が 捕 捉 さ れ る と init(1) プ ロ グ ラ ム に 送 ら れ て 、 正 し く 再 起 動 さ れ る 。 値 が 0 よ り 大 き い 場 合 、 Vulcan Nerve Pinch (tm) に 反 応 し て 、 Linux は ダ ー テ ィ バ ッ フ ァ ー を 同 期 さ せ る こ と な く 、 す ぐ に 再 起 動 を 行 う 。 注 意 : プ ロ グ ラ ム (dosemu な ど ) に "raw" モ ー ド の キ ー ボ ー ド が あ る 場 合 、 ctrl−alt−del は カ ー ネ ル の tty レ イ ヤ ー に 到 達 す る 前 に プ ロ グ ラ ム に 遮 断 さ れ 、 プ ロ グ ラ ム に 送 ら れ て ど の よ う に 扱 う か が 決 め ら れ る 。
/proc/sys/kernel/dmesg_restrict
(Linux 2.6.37 以 降 ) こ の フ ァ イ ル の 値 に よ り 誰 が カ ー ネ ル syslog の 内 容 を 参 照 で き る か が 決 定 さ れ る 。 こ の フ ァ イ ル の 値 が 0 で あ れ ば 、 制 限 は な く な る 。 値 が 1 で あ れ ば 、 特 権 ユ ー ザ ー だ け が カ ー ネ ル syslog を 読 み 出 す こ と が で き る (詳 細 は syslog(2) を 参 照 )。 Linux 3.4 以 降 で は CAP_SYS_ADMIN ケ ー パ ビ リ テ ィ を 持 っ た ユ ー ザ ー だ け が こ の フ ァ イ ル の 値 を 変 更 で き る 。
/proc/sys/kernel/domainname
/proc/sys/kernel/hostname こ れ ら の フ ァ イ ル は 、 コ マ ン ド domainname(1), hostname(1) と 全 く 同 じ 方 法 で 、 マ シ ン の NIS/YP ド メ イ ン 名 と ホ ス ト 名 の 設 定 に 使 え る 。 す な わ ち

# echo 'darkstar' > /proc/sys/kernel/hostname
# echo 'mydomain' > /proc/sys/kernel/domainname は 、 以 下 と 同 じ 効 果 が あ る 。

# hostname 'darkstar'
# domainname 'mydomain' 注 意 : 典 型 的 な darkstar.frop.org と い う 名 前 に は 、 ホ ス ト 名 "darkstar" と DNS (Internet Domain Name Server) ド メ イ ン 名 "frop.org" が 含 ま れ て い る が 、 DNS ド メ イ ン 名 と NIS (Network Information Service) ま た は YP (Yellow Pages) の ド メ イ ン 名 を 混 同 し て は な ら な い 。 一 般 に こ れ ら 2 つ の ド メ イ ン 名 は 異 な る 。 詳 細 な 議 論 は 、 hostname(1) の man ペ ー ジ を 参 照 す る こ と 。

/proc/sys/kernel/hotplug こ の フ ァ イ ル は ホ ッ ト プ ラ グ ポ リ シ ー エ ー ジ ェ ン ト の パ ス が 書 か れ て い る 。 こ の フ ァ イ ル の デ フ ォ ル ト 値 は /sbin/hotplug で あ る 。
/proc/sys/kernel/htab−reclaim

(PowerPC の み ) こ の フ ァ イ ル を 0 以 外 の 値 に 設 定 す る と 、 PowerPC htab (カ ー ネ ル ソ ー ス フ ァ イ ル Documentation/powerpc/ppc_htab.txt 参 照 ) を 、 シ ス テ ム が ア イ ド ル ル ー プ に な る た び に 切 り 詰 め る 。

/proc/sys/kernel/kptr_restrict (Linux 2.6.38 以 降 )

The value in this file determines whether kernel addresses are exposed via /proc files and other interfaces. A value of 0 in this file imposes no restrictions. If the value is 1, kernel pointers printed using the %pK format specifier will be replaced with zeros unless the user has the CAP_SYSLOG capability. If the value is 2, kernel pointers printed using the %pK format specifier will be replaced with zeros regardless of the user’s capabilities. The initial default value for this file was 1, but the default was changed to 0 in Linux 2.6.39. Since Linux 3.4, only users with the CAP_SYS_ADMIN capability can change the value in this file.

/proc/sys/kernel/l2cr

(PowerPC の み ) こ の フ ァ イ ル に は G3 プ ロ セ ッ サ ボ ー ド の L2 キ ャ ッ シ ュ を 制 御 す る フ ラ グ が 含 ま れ る 。 0 の 場 合 、 キ ャ ッ シ ュ は 無 効 に な る 。 0 以 外 の 場 合 は 有 効 に な る 。

/proc/sys/kernel/modprobe こ の フ ァ イ ル に は 、 カ ー ネ ル モ ジ ュ ー ル ロ ー ダ ー へ の パ ス が 含 ま れ る 。 デ フ ォ ル ト の 値 は /sbin/modprobe で あ る 。 こ の フ ァ イ ル は 、 CONFIG_MODULES オ プ シ ョ ン (Linux 2.6.26 以 前 で は CONFIG_KMOD) を 有 効 に し て カ ー ネ ル が 作 成 さ れ て い る 場 合 に の み 存 在 す る 。 こ の フ ァ イ ル に つ い て は 、 Linux カ ー ネ ル ソ ー ス フ ァ イ ル Documentation/kmod.txt (カ ー ネ ル 2.4 以 前 の み に 存 在 ) に 記 述 さ れ て い る 。
/proc/sys/kernel/modules_disabled
(Linux 2.6.31 以 降 ) 他 の モ ジ ュ ー ル が 有 効 に な っ た カ ー ネ ル へ の モ ジ ュ ー ル の ロ ー ド が 許 可 さ れ る か を 示 す オ ン ・ オ フ 値 で あ る 。 デ フ ォ ル ト 値 は オ フ (0) だ が 、 オ ン (1) に 設 定 す る こ と が で き る 。 一 度 オ ン に す る と 、 モ ジ ュ ー ル を ロ ー ド す る こ と も ア ン ロ ー ド す る こ と も で き な く な り 、 こ の 値 を オ フ に 戻 す こ と も で き な い 。 こ の フ ァ イ ル が 存 在 す る の は 、 カ ー ネ ル が CONFIG_MODULES オ プ シ ョ ン を 有 効 に し て コ ン パ イ ル さ れ て い る 場 合 だ け で あ る 。
/proc/sys/kernel/msgmax
(Linux 2.2 以 降 ) こ の フ ァ イ ル は 、 System V メ ッ セ ー ジ キ ュ ー に 書 き 込 ま れ る 1 つ の メ ッ セ ー ジ の 最 大 バ イ ト 数 を 、 シ ス テ ム 全 体 で 制 限 す る 。
/proc/sys/kernel/msgmni
(Linux 2.4 以 降 ) こ の フ ァ イ ル は メ ッ セ ー ジ キ ュ ー 識 別 子 の 最 大 数 を シ ス テ ム 全 体 で 制 限 す る 。
/proc/sys/kernel/msgmnb
(Linux 2.2 以 降 ) こ の フ ァ イ ル は 、 msg_qbytes の 設 定 を 初 期 化 す る シ ス テ ム 全 体 の パ ラ メ ー タ ー で あ る 。 msg_qbytes は 以 降 で 作 成 さ れ る メ ッ セ ー ジ キ ュ ー で 使 わ れ る 。 msg_qbytes 設 定 で は 、 メ ッ セ ー ジ キ ュ ー に 書 き 込 ま れ る 最 大 バ イ ト 数 を 指 定 す る 。
/proc/sys/kernel/ngroups_max
(Linux 2.6.4 以 降 ) こ の フ ァ イ ル は 、 プ ロ セ ス グ ル ー プ の メ ン バ ー 数 の 上 限 値 を 表 示 す る 読 み 出 し 専 用 の フ ァ イ ル で あ る 。
/proc/sys/kernel/ostype
/proc/sys/kernel/osrelease こ れ ら の フ ァ イ ル は 文 字 列 /proc/version の 各 部 分 を 与 え る 。
/proc/sys/kernel/overflowgid
/proc/sys/kernel/overflowuid こ れ ら の フ ァ イ ル は /proc/sys/fs/overflowgid/proc/sys/fs/overflowuid を 複 製 し た も の で あ る 。
/proc/sys/kernel/panic
こ の フ ァ イ ル は カ ー ネ ル 変 数 panic_timeout へ の 読 み 出 し と 書 き 込 み の ア ク セ ス を 与 え る 。 こ の 値 が 0 な ら ば 、 パ ニ ッ ク 時 に カ ー ネ ル は (無 限 ) ル ー プ に 入 る 。 0 で な け れ ば 、 そ の 秒 数 だ け 待 っ て か ら 自 動 的 に 再 起 動 す る 。 ソ フ ト ウ ェ ア watchdog ド ラ イ バ を 使 っ て い る 場 合 、 推 奨 さ れ る 設 定 は 60 で あ る 。
/proc/sys/kernel/panic_on_oops
(Linux 2.5.68 以 降 ) こ の フ ァ イ ル は 、 oops や BUG が 起 こ っ た 場 合 の カ ー ネ ル の 動 作 を 制 御 す る 。 フ ァ イ ル に 0 が 書 か れ て い る 場 合 、 シ ス テ ム は 操 作 を 続 行 し よ う と す る 。 1 が 書 か れ て い る 場 合 、 シ ス テ ム は (klogd が oops 出 力 を 記 録 す る 時 間 を 与 え る た め に ) 数 秒 間 遅 延 し た 後 、 panic を 起 こ す 。 /proc/sys/kernel/panic フ ァ イ ル も 0 で な い 場 合 、 マ シ ン は 再 起 動 さ れ る 。
/proc/sys/kernel/pid_max
(Linux 2.5.34 以 降 ) こ の フ ァ イ ル は 、 PID を い く つ で 終 了 に す る か を 指 定 す る (す な わ ち 、 こ の フ ァ イ ル の 値 は 最 大 PID よ り 1 大 き い )。 こ の 値 よ り 大 き な PID 値 は 割 り 当 て ら れ な い 。 し た が っ て 、 こ の フ ァ イ ル の 値 は プ ロ セ ス や ス レ ッ ド の 全 体 数 の シ ス テ ム 全 体 で の 上 限 と し て も 機 能 す る 。 こ の フ ァ イ ル の デ フ ォ ル ト 値 は 32768 で あ り 、 そ の 場 合 に は 以 前 の カ ー ネ ル と 同 じ PID の 範 囲 に な る 。 32ビ ッ ト の プ ラ ッ ト フ ォ ー ム で は 、 pid_max の 最 大 値 は 32768 で あ る 。 64ビ ッ ト の プ ラ ッ ト フ ォ ー ム で は 、 2^22 (PID_MAX_LIMIT, 約 4,000,000) ま で の 任 意 の 値 を 設 定 で き る 。
/proc/sys/kernel/powersave−nap
(PowerPC の み ) こ の フ ァ イ ル に は フ ラ グ が 書 か れ て い る 。 フ ラ グ が 設 定 さ れ る と 、 Linux−PPC は 省 電 力 の "nap" モ ー ド を 使 う 。 設 定 さ れ な い 場 合 は 、 "doze" モ ー ド が 使 わ れ る 。
/proc/sys/kernel/printk

syslog(2) 参 照 。

/proc/sys/kernel/pty (Linux 2.6.4 以 降 ) こ の デ ィ レ ク ト リ は 、 UNIX 98 疑 似 端 末 (pts(4) を 参 照 ) の 数 に 関 連 す る 2 つ の フ ァ イ ル を 含 む 。
/proc/sys/kernel/pty/max
こ の フ ァ イ ル は 疑 似 端 末 の 最 大 数 を 定 義 す る 。
/proc/sys/kernel/pty/nr
こ の 読 み 出 し 専 用 の フ ァ イ ル は 、 現 在 い く つ の 疑 似 端 末 が 使 わ れ て い る か を 表 す 。
/proc/sys/kernel/random
こ の デ ィ レ ク ト リ は 、 フ ァ イ ル /dev/random の 操 作 を 制 御 す る 様 々 な パ ラ メ ー タ ー が 書 か れ て い る 。 詳 細 は random(4) を 参 照 。
/proc/sys/kernel/random/uuid
(Linux 2.4 以 降 ) こ の 読 み 出 し 専 用 の フ ァ イ ル か ら 読 み 出 し を 行 う ご と に 、 ラ ン ダ ム に 生 成 し た 128 ビ ッ ト の UUID を 、 標 準 の UUID 形 式 の 文 字 列 と し て 返 す 。
/proc/sys/kernel/real−root−dev
こ の フ ァ イ ル は Linux カ ー ネ ル ソ ー ス フ ァ イ ル Documentation/initrd.txt に 記 述 さ れ て い る 。
/proc/sys/kernel/reboot−cmd
(Sparc の み ) こ の フ ァ イ ル は SPARC ROM/Flash ブ ー ト ロ ー ダ ー に 引 き 数 を 渡 す 方 法 を 提 供 し て い る よ う に 思 わ れ る 。 再 起 動 後 に 何 を す る か を 指 定 し て い る の だ ろ う か ?
/proc/sys/kernel/rtsig−max

(2.6.7 ま で の カ ー ネ ル に の み 存 在 す る 。 setrlimit(2) を 参 照 す る こ と ) こ の フ ァ イ ル は シ ス テ ム で 発 行 さ れ る POSIX real−time (queued) signal の 最 大 数 を 調 整 す る の に 使 用 さ れ る 。

/proc/sys/kernel/rtsig−nr

(2.6.7 ま で の カ ー ネ ル に の み 存 在 す る ) こ の フ ァ イ ル は 現 在 キ ュ ー に 入 っ て い る POSIX real−time signal の 数 を 表 す 。

/proc/sys/kernel/sched_rr_timeslice_ms (Linux 3.9 以 降 )

sched_rr_get_interval(2) 参 照 。

/proc/sys/kernel/sched_rt_period_us (Linux 2.6.25 以 降 )

sched(7) 参 照 。

/proc/sys/kernel/sched_rt_runtime_us (Linux 2.6.25 以 降 )

sched(7) 参 照 。

/proc/sys/kernel/sem (Linux 2.4 以 降 ) こ の フ ァ イ ル に は System V IPC セ マ フ ォ を 制 限 す る 4 つ の 値 が 書 か れ て い る 。 こ れ ら の フ ィ ー ル ド は 次 の 順 番 に 並 ん で い る :

SEMMSL セ マ フ ォ 集 合 ご と の セ マ フ ォ 数 の 最 大 値 。

SEMMNS シ ス テ ム 全 体 で の 、 全 て の セ マ フ ォ 集 合 に お け る セ マ フ ォ 数 の 制 限 。

SEMOPM

semop(2) コ ー ル に 指 定 さ れ る オ ペ レ ー シ ョ ン 数 の 最 大 値 。

SEMMNI シ ス テ ム 全 体 で の セ マ フ ォ 識 別 子 の 最 大 値 。

/proc/sys/kernel/sg−big−buff こ の フ ァ イ ル は 、 汎 用 SCSI デ バ イ ス (sg) の バ ッ フ ァ ー サ イ ズ の 最 大 値 を 表 す 。 今 は こ れ を 変 更 す る こ と は で き な い が 、 コ ン パ イ ル 時 に include/scsi/sg.h を 編 集 し て SG_BIG_BUFF の 値 を 変 え れ ば 変 更 で き る 。 た だ し 、 こ の 値 を 変 更 す る 理 由 は な い だ ろ う 。
/proc/sys/kernel/shm_rmid_forced
(Linux 3.1 以 降 )

If this file is set to 1, all System V shared memory segments will be marked for destruction as soon as the number of attached processes falls to zero; in other words, it is no longer possible to create shared memory segments that exist independently of any attached process.

The effect is as though a shmctl(2) IPC_RMID is performed on all existing segments as well as all segments created in the future (until this file is reset to 0). Note that existing segments that are attached to no process will be immediately destroyed when this file is set to 1. Setting this option will also destroy segments that were created, but never attached, upon termination of the process that created the segment with shmget(2).

Setting this file to 1 provides a way of ensuring that all System V shared memory segments are counted against the resource usage and resource limits (see the description of RLIMIT_AS in getrlimit(2)) of at least one process.

Because setting this file to 1 produces behavior that is nonstandard and could also break existing applications, the default value in this file is 0. Only set this file to 1 if you have a good understanding of the semantics of the applications using System V shared memory on your system.

/proc/sys/kernel/shmall (Linux 2.2 以 降 ) こ の フ ァ イ ル に は System V 共 有 メ モ リ ー の 総 ペ ー ジ 数 の シ ス テ ム 全 体 で の 制 限 が 書 か れ て い る 。
/proc/sys/kernel/shmmax
(Linux 2.2 以 降 ) こ の フ ァ イ ル を 通 じ て 、 (System V IPC) 共 有 メ モ リ ー セ グ メ ン ト を 作 成 す る と き の 最 大 サ イ ズ の 実 行 時 上 限 (run−time limit) を 取 得 ま た は 設 定 で き る 。 現 在 は 1GB ま で の 共 有 メ モ リ ー セ グ メ ン ト が カ ー ネ ル で サ ポ ー ト さ れ て い る 。 こ の 値 の デ フ ォ ル ト は SHMMAX で あ る 。
/proc/sys/kernel/shmmni
(Linux 2.4 以 降 ) こ の フ ァ イ ル は 、 シ ス テ ム 全 体 で 作 成 可 能 な System V 共 有 メ モ リ ー セ グ メ ン ト 数 を 指 定 す る 。
/proc/sys/kernel/sysrq
こ の フ ァ イ ル は 、 SysRq キ ー に よ り 起 動 が 許 可 さ れ て い る 関 数 群 を 制 御 す る も の で あ る 。 デ フ ォ ル ト で は 、 フ ァ イ ル の 内 容 は 1 で あ り 、 こ れ は 起 こ り 得 る 全 て の SysRq リ ク エ ス ト が 許 可 さ れ る こ と を 意 味 す る (古 い バ ー ジ ョ ン の カ ー ネ ル で は 、 SysRq は デ フ ォ ル ト で は 無 効 に な っ て お り 、 実 行 時 に 明 示 的 に 有 効 に す る 必 要 が あ っ た が 、 今 は そ う で は な い )。 こ の フ ァ イ ル で 指 定 可 能 な 値 は 以 下 の 通 り 。

0 − sysrq を 完 全 に 無 効 に す る
1 − sysrq の 全 て の 関 数 を 有 効 に す る >1 − 許 可 す る sysrq 関 数 の ビ ッ ト マ ス ク 。 内 訳 は 以 下 の 通 り 。
2 − コ ン ソ ー ル の ロ グ レ ベ ル の 制 御 を 有 効 に す る
4 − キ ー ボ ー ド の 制 御 を 有 効 に す る (SAK, unraw)
8 − プ ロ セ ス な ど の デ バ ッ グ ダ ン プ を 有 効 に す る
16 − sync コ マ ン ド を 有 効 に す る
32 − 読 み 出 し 専 用 で の 再 マ ウ ン ト を 有 効 に す る
64 − プ ロ セ ス へ の シ グ ナ ル 発 行 を 有 効 に す る (term, kill, oom−kill)
128 − リ ブ ー ト /電 源 オ フ を 許 可 す る
256 − 全 て の リ ア ル タ イ ム タ ス ク の nice 値 の 変 更 を 許 可 す る カ ー ネ ル 設 定 オ プ シ ョ ン CONFIG_MAGIC_SYSRQ が 有 効 な 場 合 の み 、 こ の フ ァ イ ル は 存 在 す る 。 詳 細 は 、 Linux カ ー ネ ル ソ ー ス フ ァ イ ル Documentation/sysrq.txt を 参 照 の こ と 。

/proc/sys/kernel/version こ の フ ァ イ ル に は 、 以 下 の よ う な 文 字 列 が 書 か れ て い る :

#5 Wed Feb 25 21:49:24 MET 1998

"#5" は こ の ソ ー ス で 構 築 さ れ た 5 番 目 の カ ー ネ ル で あ る こ と を 意 味 す る 。 そ の 後 に あ る 日 付 は カ ー ネ ル が 構 築 さ れ た 時 刻 を 表 す 。

/proc/sys/kernel/threads−max (Linux 2.3.11 以 降 ) こ の フ ァ イ ル は 、 シ ス テ ム 全 体 で 作 成 可 能 な ス レ ッ ド 数 (タ ス ク 数 ) の 上 限 を 指 定 す る 。
/proc/sys/kernel/zero−paged
(PowerPC の み ) こ の フ ァ イ ル は フ ラ グ を 含 む 。 (0 以 外 の 値 で ) 有 効 さ れ た 場 合 、 Linux−PPC は ア イ ド ル ル ー プ で pre−zero page を 行 う の で 、 get_free_pages の 速 度 が 向 上 す る 可 能 性 が あ る 。
/proc/sys/net
こ の デ ィ レ ク ト リ に は ネ ッ ト ワ ー ク 関 係 の 情 報 が 入 っ て い る 。 こ の デ ィ レ ク ト リ に あ る フ ァ イ ル の い く つ か に つ い て は 、 tcp(7)ip(7) に 説 明 が あ る 。
/proc/sys/net/core/somaxconn
こ の フ ァ イ ル は listen(2)backlog 引 き 数 の 上 限 値 を 規 定 す る 。 詳 細 は listen(2) の マ ニ ュ ア ル ペ ー ジ を 参 照 。
/proc/sys/proc
こ の デ ィ レ ク ト リ は 空 の 場 合 も あ る 。
/proc/sys/sunrpc
こ の デ ィ レ ク ト リ は ネ ッ ト ワ ー ク フ ァ イ ル シ ス テ ム (NFS) へ の Sun remote procedure call (遠 隔 手 続 き 呼 び 出 し ) を サ ポ ー ト す る 。 こ れ が 存 在 し な い シ ス テ ム も あ る 。
/proc/sys/vm
こ の デ ィ レ ク ト リ に は メ モ リ ー 管 理 の 調 整 、 バ ッ フ ァ ー や キ ャ ッ シ ュ 管 理 の た め の フ ァ イ ル が あ る 。
/proc/sys/vm/compact_memory
(Linux 2.6.35 以 降 )

When 1 is written to this file, all zones are compacted such that free memory is available in contiguous blocks where possible. The effect of this action can be seen by examining /proc/buddyinfo. カ ー ネ ル の 設 定 で CONFIG_COMPACTION が 有 効 に な っ て い る 場 合 に の み 存 在 す る 。

/proc/sys/vm/drop_caches (Linux 2.6.16 以 降 ) こ の フ ァ イ ル に 書 き 込 み を 行 う と 、 カ ー ネ ル に 、 ク リ ー ン な キ ャ ッ シ ュ 、 dentry、 inode を メ モ リ ー か ら 追 い 出 し て 、 メ モ リ ー を 解 放 さ せ る こ と が で き る 。 こ の 機 能 は メ モ リ ー 管 理 の テ ス ト や 再 現 可 能 な フ ァ イ ル シ ス テ ム の ベ ン チ マ ー ク を 行 う の に 役 立 つ 。 こ の フ ァ イ ル へ の 書 き 込 み は キ ャ ッ シ ュ の 利 点 を 失 う こ と に な る の で 、 シ ス テ ム 全 体 の 性 能 は 低 下 す る 可 能 性 が あ る 。 ペ ー ジ キ ャ ッ シ ュ を 解 放 す る に は 、 以 下 の よ う に す る 。

echo 1 > /proc/sys/vm/drop_caches

dentry と inode を 解 放 す る に は 、 以 下 の よ う に す る 。

echo 2 > /proc/sys/vm/drop_caches ペ ー ジ キ ャ ッ シ ュ 、 dentry、 inode を 解 放 す る に は 、 以 下 の よ う に す る 。

echo 3 > /proc/sys/vm/drop_caches こ の フ ァ イ ル へ の 書 き 込 み は 非 破 壊 的 な 操 作 で 、 ダ ー テ ィ な (dirty) オ ブ ジ ェ ク ト は 解 放 さ れ な い の で 、 こ の 操 作 を 行 う 際 は 最 初 に sync(1) を 実 行 し て お く べ き で あ る 。

/proc/sys/vm/legacy_va_layout (Linux 2.6.9 以 降 )

0 以 外 の 場 合 、 新 し い 32ビ ッ ト メ モ リ ー マ ッ ピ ン グ 配 置 が 無 効 に な り 、 カ ー ネ ル は 全 て の プ ロ セ ス に 対 し て 従 来 の (カ ー ネ ル 2.4 の ) 配 置 方 法 を 使 用 す る 。

/proc/sys/vm/memory_failure_early_kill (Linux 2.6.32 以 降 ) こ の フ ァ イ ル は 、 カ ー ネ ル が 処 理 で き な い 訂 正 不 能 な メ モ リ ー エ ラ ー (通 常 は メ モ リ ー モ ジ ュ ー ル で の 2 ビ ッ ト エ ラ ー ) が バ ッ ク グ ラ ウ ン ド で ハ ー ド ウ ェ ア に よ り 検 出 さ れ た 際 に 、 プ ロ セ ス を ど の よ う に kill す る か を 制 御 す る 。 (ペ ー ジ の 有 効 な コ ピ ー が デ ィ ス ク 上 に も 存 在 す る な ど ) い く つ か の 場 面 で は 、 カ ー ネ ル は ア プ リ ケ ー シ ョ ン に 影 響 を 与 え ず に 透 過 的 に 故 障 を 処 理 す る 。 し か し 、 デ ー タ の 最 新 の コ ピ ー が 他 に は な い 場 合 に は 、 デ ー タ 破 壊 が 波 及 す る の を 防 ぐ た め 、 カ ー ネ ル は プ ロ セ ス を kill す る 。 こ の フ ァ イ ル は 以 下 の い ず れ か の 値 を 持 つ 。

1: デ ー タ 破 壊 が 検 出 さ れ る と す ぐ に 、 故 障 が 検 出 さ れ 復 元 で き な い ペ ー ジ

(corrupted−and−not−reloadable page) を マ ッ プ し て い る 全 て の プ ロ セ ス を kill す る 。 こ の 機 能 は 、 (カ ー ネ ル 内 部 で 割 り 当 て ら れ た デ ー タ や ス ワ ッ プ の キ ャ ッ シ ュ な ど ) 少 数 の い く つ か の タ イ プ の ペ ー ジ で は サ ポ ー ト さ れ て い な い が 、 大 半 の ユ ー ザ ー ペ ー ジ で は こ の 機 能 は 働 く 。

0: デ ー タ 破 壊 が 検 出 さ れ た ペ ー ジ の 全 て の プ ロ セ ス か ら の

unmap の

み を 行 い 、 そ の ペ ー ジ に ア ク セ ス し よ う と し た プ ロ セ ス の み を kill す る 。 こ の kill は si_codeBUS_MCEERR_AO を 設 定 し た SIGBUS シ グ ナ ル を 使 っ て 行 わ れ る 。 プ ロ セ ス 側 で は 必 要 で あ れ ば こ の シ グ ナ ル を 処 理 す る こ と が で き る 。 詳 細 は sigaction(2) を 参 照 。 こ の 機 能 は 、 高 度 な マ シ ン チ ェ ッ ク 機 構 を 持 っ た ア ー キ テ ク チ ャ ー /プ ラ ッ ト フ ォ ー ム に お い て の み 有 効 で あ り 、 ハ ー ド ウ ェ ア 機 能 に も 依 存 し て い る 。 ア プ リ ケ ー シ ョ ン は prctl(2)PR_MCE_KILL 操 作 を 使 っ て 個 別 に memory_failure_early_kill の 設 定 を 上 書 き す る こ と が で き る 。 カ ー ネ ル の 設 定 で CONFIG_MEMORY_FAILURE が 有 効 に な っ て い る 場 合 に の み 存 在 す る 。

/proc/sys/vm/memory_failure_recovery (Linux 2.6.32 以 降 ) メ モ リ ー 故 障 回 復 (memory failure recovery) を 有 効 に す る

(プ ラ ッ ト フ ォ ー ム が サ ポ ー ト し て い る 場 合 )

1: 回 復 を 試 み る 。

0: メ モ リ ー 故 障 時 に は 常 に

panic を 起 こ す 。

カ ー ネ ル の 設 定 で CONFIG_MEMORY_FAILURE が 有 効 に な っ て い る 場 合 に の み 存 在 す る 。

/proc/sys/vm/oom_dump_tasks (Linux 2.6.25 以 降 ) カ ー ネ ル が OOM−killing を 実 行 す る 際 に 、 シ ス テ ム 全 体 の タ ス ク ダ ン プ (カ ー ネ ル ス レ ッ ド を 除 く ) を 生 成 す る か を 制 御 す る 。 ダ ン プ に は 、 タ ス ク (ス レ ッ ド 、 プ ロ セ ス ) 毎 に 以 下 の 情 報 が 出 力 さ れ る : ス レ ッ ド ID、 実 ユ ー ザ ー ID、 ス レ ッ ド グ ル ー プ ID (プ ロ セ ス ID)、 仮 想 メ モ リ ー サ イ ズ 、 Resident Set Size (実 メ モ リ ー 上 に 存 在 す る ペ ー ジ サ イ ズ )、 タ ス ク が ス ケ ジ ュ ー リ ン グ さ れ た CPU、 oom_adj ス コ ア (/proc/[pid]/oom_adj の 説 明 を 参 照 )、 コ マ ン ド 名 。 こ の ダ ン プ 情 報 は 、 な ぜ OOM−killer が 起 動 さ れ た か を 知 り 、 そ の 原 因 と な っ た な ら ず 者 の タ ス ク を 特 定 す る の に 役 に 立 つ 。 こ の フ ァ イ ル の 内 容 が 値 0 の 場 合 、 ダ ン プ 情 報 の 出 力 は 行 わ れ な い 。 タ ス ク が 何 千 も あ る 非 常 に 巨 大 な シ ス テ ム で は 、 各 々 の タ ス ク に つ い て メ モ リ ー 状 態 を ダ ン プ す る の は 適 切 で な い か も し れ な い 。 そ の よ う な シ ス テ ム で は 、 ダ ン プ 情 報 が 必 要 で も な い と き に メ モ リ ー 不 足 (OOM) の 状 況 で 性 能 面 の 不 利 益 が 起 こ ら な い よ う に す べ き だ ろ う 。 こ の フ ァ イ ル の 内 容 が 0 以 外 の 場 合 、 OOM−killer が 実 際 に メ モ リ ー を 占 有 し た タ ス ク を kill す る 度 に ダ ン プ 情 報 が 出 力 さ れ る 。 デ フ ォ ル ト 値 は 0 で あ る 。
/proc/sys/vm/oom_kill_allocating_task
(Linux 2.6.24 以 降 ) こ の フ ァ イ ル は 、 メ モ リ ー 不 足 (OOM) の 状 況 が 起 こ っ た 際 に 、 メ モ リ ー 不 足 の き っ か け と な っ た タ ス ク を kill す る か ど う か を 制 御 す る 。 こ の フ ァ イ ル が 0 に 設 定 さ れ た 場 合 、 OOM−killer は タ ス ク リ ス ト 全 体 を ス キ ャ ン し 、 経 験 則 に 基 づ き kill す る タ ス ク を 選 択 す る 。 通 常 は 、 kill し た 場 合 に 多 く の メ モ リ ー が 解 放 で き る 、 な ら ず 者 の メ モ リ ー 占 有 タ ス ク が 選 択 さ れ る 。 こ の フ ァ イ ル が 0 以 外 に 設 定 さ れ た 場 合 、 OOM−killer は メ モ リ ー 不 足 の 状 況 が 発 生 す る き っ か け と な っ た タ ス ク を 単 純 に kill す る だ け で あ る 。 こ れ に よ り 、 た い て い は 重 い 処 理 と な る タ ス ク リ ス ト の ス キ ャ ン を 回 避 で き る 。

/proc/sys/vm/panic_on_oom が 0 以 外 の 場 合 、 /proc/sys/vm/oom_kill_allocating_task に ど の よ う な 値 が 入 っ て い た と し て も 、 /proc/sys/vm/panic_on_oom の 方 が 優 先 さ れ る 。 デ フ ォ ル ト 値 は 0 で あ る 。

/proc/sys/vm/overcommit_kbytes (Linux 3.14 以 降 ) こ の 書 き 込 み 可 能 な フ ァ イ ル は 、 /proc/sys/vm/overcommit_memory が 値 2 の 際 に 、 CommitLimit を 制 御 す る /proc/sys/vm/overcommit_ratio の 別 の 設 定 手 段 を 提 供 す る も の で あ る 。 overcommit_ratio が 割 合 を パ ー セ ン ト で 指 定 す る の に 対 し 、 こ の フ ァ イ ル で は オ ー バ ー コ ミ ッ ト す る メ モ リ ー 量 を 絶 対 値 (kB 単 位 ) で 指 定 で き る 。 こ れ に よ り 、 メ モ リ ー サ イ ズ が 非 常 に 大 き な シ ス テ ム で CommitLimit を 極 め 細 か く 制 御 で き る 。

overcommit_kbytesovercommit_ratio の い ず れ か 一 方 だ け が 効 果 を 持 つ 。 overcommit_kbytes が 0 以 外 の 値 を 持 つ 場 合 、 CommitLimit を 計 算 す る の に overcommit_kbytes が 使 用 さ れ 、 そ れ 以 外 の 場 合 overcommit_ratio が 使 用 さ れ る 。 こ れ ら の フ ァ イ ル の い ず れ か に 値 を 書 き 込 む と 、 他 の フ ァ イ ル の 値 は 0 に 設 定 さ れ る 。

/proc/sys/vm/overcommit_memory こ の フ ァ イ ル に は カ ー ネ ル 仮 想 メ モ リ ー の ア カ ウ ン ト モ ー ド が 書 か れ て い る 。 値 は 以 下 の 通 り :

0: 発 見 的 な オ ー バ ー コ ミ ッ ト (heuristic overcommit) (こ れ が デ フ ォ ル ト で あ る )
1: 常 に オ ー バ ー コ ミ ッ ト し 、 チ ェ ッ ク し な い 。
2: 常 に チ ェ ッ ク し 、 オ ー バ ー コ ミ ッ ト し な い 。 モ ー ド 0 で は 、 MAP_NORESERVE を 設 定 し て 呼 び 出 さ れ た mmap(2) は チ ェ ッ ク さ れ な い 。 ま た デ フ ォ ル ト の チ ェ ッ ク は と て も 脆 弱 で 、 プ ロ セ ス を "OOM−kill" し て し ま う リ ス ク を 引 き 起 こ す 。 Linux 2.4 で は 0 以 外 の 値 は モ ー ド 1 を 意 味 す る 。 モ ー ド 2 (Linux 2.6 以 降 で 利 用 可 能 ) で は 、 割 り 当 て 可 能 な 仮 想 ア ド レ ス 空 間 (/proc/meminfoCommitLimit) は 以 下 で 計 算 さ れ る 。

CommitLimit = (total_RAM − total_huge_TLB) *
overcommit_ratio / 100 + total_swap 個 々 の 説 明 :

*

total_RAM は シ ス テ ム 上 の RAM の 総 量

*

total_huge_TLB は ヒ ュ ー ジ ペ ー ジ 用 に 確 保 さ れ た メ モ リ ー 総 量

*

overcommit_ratio/proc/sys/vm/overcommit_ratio の 値

*

total_swap は ス ワ ッ プ 空 間 の 総 量

例 え ば 、 物 理 RAM が 16GB で 、 ス ワ ッ プ が 16GB で 、 ヒ ュ ー ジ ペ ー ジ 専 用 の 空 間 が な く 、 overcommit_ratio が 50 の シ ス テ ム で は 、 こ の 式 か ら CommitLimit と し て 24GB の 値 が 得 ら れ る 。

Linux 3.14 以 降 で は 、 /proc/sys/vm/overcommit_kbytes の 値 が 0 で な い 場 合 、 CommitLimit は 代 わ り に 以 下 の よ う に 計 算 さ れ る 。

CommitLimit = overcommit_kbytes + total_swap

/proc/sys/vm/overcommit_ratio (Linux 2.6.0 以 降 ) こ の 書 き 込 み 可 能 な フ ァ イ ル は 、 オ ー バ ー コ ミ ッ ト で き る メ モ リ ー の 割 合 を パ ー セ ン ト で 定 義 す る 。 こ の フ ァ イ ル の デ フ ォ ル ト 値 は 50 で あ る 。 /proc/sys/vm/overcommit_memory の 説 明 を 参 照 。
/proc/sys/vm/panic_on_oom
(Linux 2.6.18 以 降 ) こ の フ ァ イ ル は 、 メ モ リ ー 不 足 時 に カ ー ネ ル パ ニ ッ ク を 起 こ す か 起 こ さ な い か を 制 御 す る 。 こ の フ ァ イ ル に 値 0 を 設 定 す る と 、 カ ー ネ ル の OOM−killer が な ら ず 者 の プ ロ セ ス を kill す る 。 普 通 は 、 OOM−killer が な ら ず 者 の プ ロ セ ス を kill す る こ と が で き 、 シ ス テ ム は 何 と か 動 き 続 け る こ と が で き る 。 こ の フ ァ イ ル に 値 1 を 設 定 す る と 、 メ モ リ ー 不 足 の 状 況 が 発 生 す る と 、 カ ー ネ ル は 普 通 は パ ニ ッ ク す る 。 し か し な が ら 、 プ ロ セ ス が メ モ リ ー ポ リ シ ー (mbind(2) の MPOL_BIND) や cpusets (cpuset(7)) を 使 っ て 特 定 の ノ ー ド へ の メ モ リ ー 割 り 当 て を 制 限 し て い て 、 そ れ ら の ノ ー ド で メ モ リ ー 枯 渇 状 態 に 至 っ た 場 合 は 、 一 つ の プ ロ セ ス が OOM−killer に よ り kill さ れ る だ け か も し れ な い 。 こ の 場 合 に は 、 カ ー ネ ル パ ニ ッ ク は 発 生 し な い 。 な ぜ な ら 、 他 の ノ ー ド の メ モ リ ー に は 空 き が あ る か も し れ ず 、 し た が っ て 、 シ ス テ ム 全 体 と し て は メ モ リ ー 不 足 の 状 況 に ま だ 達 し て い な い か も し れ な い か ら で あ る 。 こ の フ ァ イ ル に 値 2 を 設 定 す る と 、 メ モ リ ー 不 足 の 状 況 が 発 生 す る と カ ー ネ ル は 常 に パ ニ ッ ク を 起 こ す 。 デ フ ォ ル ト 値 は 0 で あ る 。 1 と 2 は ク ラ ス タ リ ン グ の フ ェ イ ル オ ー バ ー 用 で あ る 。 フ ェ イ ル オ ー バ ー の 方 針 に 応 じ て ど ち ら か の 値 を 選 択 す る こ と 。
/proc/sys/vm/swappiness
こ の フ ァ イ ル の 値 に よ り 、 カ ー ネ ル が ど の 程 度 激 し く メ モ リ ー ペ ー ジ の ス ワ ッ プ を 行 う か が 制 御 さ れ る 。 大 き な 値 ほ ど ス ワ ッ プ が 激 し く な り 、 小 さ い 値 ほ ど 激 し く な く な る 。 デ フ ォ ル ト 値 は 60 で あ る 。
/proc/sysrq−trigger
(Linux 2.4.21 以 降 ) こ の フ ァ イ ル に 文 字 character を 書 き 込 む と 、 キ ー ボ ー ド か ら ALT−SysRq−<character> を 入 力 し た 場 合 と 同 じ SysRq 関 数 が 起 動 さ れ る (/proc/sys/kernel/sysrq の 説 明 を 参 照 )。 通 常 、 こ の フ ァ イ ル へ 書 き 込 み が で き る の は root だ け で あ る 。 詳 細 に つ い て は 、 Linux カ ー ネ ル ソ ー ス フ ァ イ ル の Documentation/sysrq.txt を 参 照 の こ と 。
/proc/sysvipc
疑 似 フ ァ イ ル msg, sem, shm を 含 む サ ブ デ ィ レ ク ト リ 。 こ れ ら の フ ァ イ ル は 、 現 在 シ ス テ ム 上 に 存 在 す る System V プ ロ セ ス 間 通 信 (Interprocess Communication, IPC) オ ブ ジ ェ ク ト (そ れ ぞ れ : メ ッ セ ー ジ キ ュ ー 、 セ マ フ ォ 、 共 有 メ モ リ ー ) の リ ス ト で あ り 、 ipcs(1) で 取 得 で き る 情 報 と 同 じ も の を 提 供 す る 。 こ れ ら の フ ァ イ ル に は ヘ ッ ダ ー が あ り 、 理 解 し や す い よ う に (1 行 に つ き 1 個 の IPC オ ブ ジ ェ ク ト の 形 式 で ) フ ォ ー マ ッ ト さ れ て い る 。 svipc(7) に は こ れ ら の フ ァ イ ル か ら 分 か る 情 報 の 詳 細 な 背 景 が 書 か れ て い る 。
/proc/thread−self
(Linux 3.17 以 降 ) こ の デ ィ レ ク ト リ は 、 /proc フ ァ イ ル シ ス テ ム に ア ク セ ス し た ス レ ッ ド を 参 照 し て い る 。 こ れ は 、 同 じ ス レ ッ ド の プ ロ セ ス ス レ ッ ド ID ([tid]) の 名 前 の /proc/self/task/[tid] デ ィ レ ク ト リ と 同 一 で あ る 。
/proc/timer_list
(Linux 2.6.21 以 降 )

This read−only file exposes a list of all currently pending (high−resolution) timers, all clock−event sources, and their parameters in a human−readable form.

/proc/timer_stats (Linux 2.6.21 以 降 )

This is a debugging facility to make timer (ab)use in a Linux system visible to kernel and user−space developers. It can be used by kernel and user−space developers to verify that their code does not make undue use of timers. The goal is to avoid unnecessary wakeups, thereby optimizing power consumption.

If enabled in the kernel (CONFIG_TIMER_STATS), but not used, it has almost zero runtime overhead and a relatively small data−structure overhead. Even if collection is enabled at runtime, overhead is low: all the locking is per−CPU and lookup is hashed.

The /proc/timer_stats file is used both to control sampling facility and to read out the sampled information.

The timer_stats functionality is inactive on bootup. A sampling period can be started using the following command:

# echo 1 > /proc/timer_stats

The following command stops a sampling period:

# echo 0 > /proc/timer_stats

The statistics can be retrieved by:

$ cat /proc/timer_stats

While sampling is enabled, each readout from /proc/timer_stats will see newly updated statistics. Once sampling is disabled, the sampled information is kept until a new sample period is started. This allows multiple readouts.

/proc/timer_stats の サ ン プ ル 出 力 。

$ cat /proc/timer_stats
Timer Stats Version: v0.3
Sample period: 1.764 s
Collection: active
255, 0 swapper/3 hrtimer_start_range_ns (tick_sched_timer)
71, 0 swapper/1 hrtimer_start_range_ns (tick_sched_timer)
58, 0 swapper/0 hrtimer_start_range_ns (tick_sched_timer)
4, 1694 gnome−shell mod_delayed_work_on (delayed_work_timer_fn)
17, 7 rcu_sched rcu_gp_kthread (process_timeout)
...
1, 4911 kworker/u16:0 mod_delayed_work_on (delayed_work_timer_fn)
1D, 2522 kworker/0:0 queue_delayed_work_on (delayed_work_timer_fn)
1029 total events, 583.333 events/sec

The output columns are:

*

a count of the number of events, optionally (since Linux 2.6.23) followed by the letter 'D' if this is a deferrable timer;

*

the PID of the process that initialized the timer;

*

the name of the process that initialized the timer;

*

the function where the timer was initialized; and

*

(in parentheses) the callback function that is associated with the timer.

/proc/tty 疑 似 フ ァ イ ル を 含 む サ ブ デ ィ レ ク ト リ 。 tty ド ラ イ バ と ラ イ ン 設 定 (line discipline) の 書 か れ た サ ブ デ ィ レ ク ト リ も 含 ま れ る 。
/proc/uptime
こ の フ ァ イ ル は シ ス テ ム 起 動 時 か ら 経 過 し た 時 間 (秒 ) と ア イ ド ル (idle) し て い る プ ロ セ ス が 消 費 し た 時 間 (秒 ) の 2 つ の 数 を 含 む 。
/proc/version
現 在 稼 働 し て い る カ ー ネ ル の バ ー ジ ョ ン 識 別 子 で あ る 文 字 列 。 こ れ に は /proc/sys/ostype, /proc/sys/osrelease, /proc/sys/version の 内 容 が 含 ま れ る 。 た と え ば こ の よ う に :

Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994

/proc/vmstat (Linux 2.6 以 降 ) こ の フ ァ イ ル は 仮 想 メ モ リ ー の 様 々 な 統 計 情 報 を 表 示 す る 。
/proc/zoneinfo
(Linux 2.6.13 以 降 ) こ の フ ァ イ ル は メ モ リ ー の ゾ ー ン (memory zone) に 関 す る 情 報 を 表 示 す る 。 仮 想 メ モ リ ー の 振 舞 い を 分 析 す る の に 役 立 つ 。

注 意

ほ と ん ど の 文 字 列 (た と え ば 環 境 変 数 や コ マ ン ド 行 ) は 内 部 表 現 の ま ま な の で 、 各 フ ィ ー ル ド は ヌ ル バ イ ト ('\0') で 区 切 ら れ て い る 。 だ か ら 、 od −ctr "\000" "\n" を 使 え ば 、 そ れ ら は よ り 読 み や す く な る 。 ま た echo `cat <file>` で も よ い 。 こ の マ ニ ュ ア ル は 不 完 全 で あ り 、 た ぶ ん 不 正 確 で 、 し ば し ば 更 新 さ れ る 必 要 が あ る 。

関 連 項 目

cat(1), dmesg(1), find(1), free(1), ps(1), tr(1), uptime(1), chroot(2), mmap(2), readlink(2), syslog(2), slabinfo(5), hier(7), namespaces(7), time(7), arp(8), hdparm(8), ifconfig(8), init(1), lsmod(8), lspci(8), mount(8), netstat(8), procinfo(8), route(8), sysctl(8)

Linux カ ー ネ ル の ソ ー ス フ ァ イ ル : Documentation/filesystems/proc.txt Documentation/sysctl/fs.txt, Documentation/sysctl/kernel.txt, Documentation/sysctl/net.txt, and Documentation/sysctl/vm.txt.

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。