名字
proc
: 进程信息伪文件系统
描述
/proc
是一个位于内存中的伪文件系统, 被用作内核数据结构的接口, 而不仅仅 是解释说明 /dev/kmem
. /proc
里的大多数文件都是只读的, 但也可 以通过写一些文件来改变内核变量.
目录结构
/proc/[pid]
在 /proc
目录里, 每个正在运行的进程都有一个以该进程 pid 命名的子目录, 其下包括如下的目录和伪文件.
/proc/[pid]/attr
- current
- exec
- fscreate
- keycreate
- prev
- sockcreate
TODO
/proc/[pid]/autogroup
TODO
/proc/[pid]/auxv
TODO
/proc/[pid]/cgroup
TODO
/proc/[pid]/clear_refs
TODO
/proc/[pid]/cmdline
该文件保存了进程的完整命令行. 如果该进程已经 被交换出内存, 或者该进程已经僵死, 那么就没有 任何东西在该文件里, 这时候对该文件的读操作将返回零 个字符. 该文件以空字符 null 而不是换行符作为结 束标志.
/proc/[pid]/comm
TODO
/proc/[pid]/coredump_filter
TODO
/proc/[pid]/cpuset
TODO
/proc/[pid]/cwd
一个符号连接, 指向进程当前的工作目录.
例如, 要找出进程 20 的 cwd, 你可以:
cd /proc/20/cwd; /bin/pwd
请注意 pwd
命令通常是 shell 内置的, 在这样的情况下可能
工作得不是很好.
/proc/[pid]/environ
该文件保存进程的环境变量, 各项之间以空字符分隔,
结尾也可能是一个空字符. 因此, 如果要输出进程 1 的环境变量,
你应该:
strings /proc/1/environ
# 旧的方式: (cat /proc/1/environ; echo) | tr ";\\000"; ";\\n";
/proc/[pid]/exe
也是一个符号连接, 指向被执行的二进制代码.
在 Linux 2.0 或者更早的版本下, 对 exe 特殊文件的 返回一个如下格式的字符串:
[设备号]:节点号
举个例子, [0301]:1502
就是某设备的 1502 节点, 该设备的主设备号为 03 (如 IDE, MFM 等驱动器), 从设备号为 01 (第一个驱动器的第一分区).
而在 Linux 2.2 下, 则给出命令的实际路径名.
另外, 该符号连接也可以正常析引用(试图打开 exe 文件实际上将打开一个可执行文件). 你甚至可以键入 /proc/[pid]/exe
来运行 [pid] 进程的副本.
/proc/[pid]/fd
进程所打开的每个文件都有一个符号连接在该子目 录里, 以文件描述符命名, 这个名字实际上是指向 真正的文件的符号连接,(和 exe 记录一样).
例如, 0 是标准输入, 1 是标准输出, 2 是标准错误, 等等.
程序有时可能想要读取一个文件却不想要标准输入,或者想写到一个文件却不想将输出送到标准输出去,那么就可以很有效地用如下的办法骗过(假定 -i 是输入文件的标志, 而 -o 是输出文件的标志)
\f(CWfoobar -i /proc/self/fd/0 -o /proc/self/fd/1 ...\fP
这样就是一个能运转的过滤器. 请注意该方法不能 用来在文件里搜索, 这是因为 fd 目录里的文件是不可搜索的.
在 UNIX 类的系统下, /proc/self/fd/N
基本上就与 /dev/fd/N
相同. 实际上, 大多数的 Linux MAKEDEV 脚本都将 /dev/fd
符号连接到 [..]/proc/self/fd
上.
// TODO 待完善
/proc/[pid]/fdinfo
TODO
/proc/[pid]/git_map
TODO
/proc/[pid]/io
TODO
/proc/[pid]/limits
TODO
/proc/[pid]/loginuid
TODO
/proc/[pid]/map_files
TODO
/proc/[pid]/maps
该文件包含当前的映象内存区及他们的访问许可.
格式如下:
address perms offset dev inode
00000000-0002f000 r-x-- 00000400 03:03 1401
0002f000-00032000 rwx-p 0002f400 03:03 1401
00032000-0005b000 rwx-p 00000000 00:00 0
60000000-60098000 rwx-p 00000400 03:03 215
60098000-600c7000 rwx-p 00000000 00:00 0
bfffa000-c0000000 rwx-p 00000000 00:00 0
address 是进程所占据的地址空间, perms 是权限集:
r = read
w = write
x = execute
s = shared
p = private (copy on write)
offset 是文件或者别的什么的偏移量, dev 是设备号(主设 备号:从设备号), 而 inode 则是设备的节点号. 0 表明没有 节点与内存相对应, 就象 bss 的情形.
在 Linux 2.2 下还增加了一个域给可用的路径名.
/proc/[pid]/mem
该文件并不是 mem (1:1) 设备, 尽管它们有相同的设备号./dev/mem
设备是做任何地址转换之前的物理内存, 而这里的 mem 文件是访问它的进程的内存.目前这个 mem 还不能 (内存映射)出去,而且可能一直要等到内核中增加了一个通用的以后才能实现.
/proc/[pid]/mountinfo
TODO
/proc/[pid]/mounts
TODO
/proc/[pid]/mountstats
TODO
/proc/[pid]/net
- ….
TODO
/proc/[pid]/ns
- ipc
- mnt
- net
- pid
- user
- uts
TODO
/proc/[pid]/numa_maps
TODO
/proc/[pid]/oom_adj
TODO
/proc/[pid]/oom_score
TODO
/proc/[pid]/oom_score_adj
TODO
/proc/[pid]/pagemap
TODO
/proc/[pid]/personality
TODO
/proc/[pid]/projid_map
TODO
/proc/[pid]/root
TODO
/proc/[pid]/sched
TODO
/proc/[pid]/schedstat
TODO
/proc/[pid]/sessionid
TODO
/proc/[pid]/setgroups
TODO
/proc/[pid]/smaps
TODO
/proc/[pid]/stack
TODO
/proc/[pid]/stat
TODO
/proc/[pid]/statm
TODO
/proc/[pid]/status
字段 | 释义 |
---|---|
VmPeak | 进程所使用的虚拟内存的峰值 |
VmSize | 进程当前使用的虚拟内存的大小 |
VmLck | 已经锁住的物理内存的大小(锁住的物理内存不能交换到硬盘) |
VmHWM | 进程所使用的物理内存的峰值 |
VmRSS | 进程当前使用的物理内存的大小 |
VmData | 进程占用的数据段大小 |
VmStk | 进程占用的栈大小 |
VmExe | 进程占用的代码段大小(不包括库) |
VmLib | 进程所加载的动态库所占用的内存大小(可能与其它进程共享) |
VmPTE | 进程占用的页表大小(交换表项数量) |
VmSwap | 进程所使用的交换区的大小 |
/proc/[pid]/syscall
TODO
/proc/[pid]/task
- ……
TODO
/proc/[pid]/uid_map
TODO
/proc/[pid]/wchan
TODO
/proc/[pid]/mmap
做的 maps 映射目录,是和 exe
, fd/*
等类似的符号连接.
请注意 maps 包含了比 /proc/*/mmap
更多的信息, 所以应该废弃 mmap.
“;0”; 通常指 libc.so.4.
/proc/acpi
TODO
/proc/apm
TODO
/proc/buddyinfo
TODO
/proc/bus
TODO
/proc/bus/input
- devices
- handlers
TODO
/proc/bus/pccard
- drivers
TODO
/proc/bus/pci
- devices
TODO
/proc/cgroups
TODO
/proc/cmdline
TODO
/proc/config.gz
TODO
/proc/consoles
TODO
/proc/cpuinfo
保存了CPU 以及体系架构依赖条目的列表. 对于不同的系统架构有不同的列表, 共有的两项是 \fIcpu\fP
和 \fIBogoMIPS\fP
, \fIcpu\fP
可能是当前在用的 CPU, 而 \fIBogoMIPS\fP
则是内核初始化时计算出的一个系统常数.
/proc/devices
主设备号及设备组的列表, 文本格式. MAKEDEV 脚本使用该文件来维持内核的一致性.
/proc/dirquota
TODO
/proc/diskstats
列 | 值 | 释义 |
---|---|---|
F1 | 253 | 设备号 |
F2 | 0 | 次设备号 |
F3 | vda | 设备名称 |
F4 | 3883348 | 成功完成读的请求次数 |
F5 | 274545 | 读请求的次数, 为了高效率可能会合并相邻的读和写,从而两次4k的读在它最终被处理到磁盘之前可能会变成一次8k的读,才被计数(和排队),因此只有一次I/O操作 |
F6 | 125965938 | 读扇区的次数 |
F7 | 23417570 | 读花费的时间(ms),这是所有读操作所花费的毫秒数 |
F8 | 65193045 | 成功完成写的请求次数 |
F9 | 97088410 | 写请求合并的次数 |
F10 | 5106211888 | 写请求的扇区数综合 |
F11 | 875230028 | 写请求花费的时间总和 |
F12 | 0 | I/O的当前速度,只有这个域应该是0,如果这个值是0,同时write_complete read_complete io_processing一直不变可能就是I/O hang了 |
F13 | 41032543 | 输入/输出花费的时间(ms),花在I/O操作上的毫秒数,这个域会增长只要field 9不为0 |
F14 | 2964738044 | 输入/输出操作花费的加权毫秒数 |
/proc/dma
一个列表, 指出正在使用的\fIISA\fP DMA (直接内存访问)通道.
/proc/driver
- …..
TODO
/proc/execdomains
TODO
/proc/fb
TODO
/proc/filesystems
以文本格式列出了被编译进内核的文件系统. 当没有给指明哪个文件系统的时候,就依靠该文件遍历不同的文件系统.
/proc/fs
- ……
TODO
/proc/hookers
TODO
/proc/hotfix_info
TODO
/proc/ide
TODO
/proc/interrupts
该文件以 ASCII 格式记录了(至少是在 i386 体系上的)每次 IRQ 的中断数目.
/proc/iomem
TODO
/proc/ioports
该文件列出了当前在用的已注册 I/O 端口范围.
/proc/ipmi
- ……
TODO
/proc/irq
- ……
TODO
/proc/kallsyms
TODO
/proc/kcore
该伪文件以 core 文件格式给出了系统的物理内存映象, 再 利用未卸载的内核 (/usr/src/linux/tools/zSystem), 我 们就可以用 GDB 查探当前内核的任意数据结构.
该文件的总长度是物理内存 (RAM) 的大小再加上 4KB.
/proc/keys
TODO
/proc/key-users
TODO
/proc/kmsg
可以用该文件取代系统调用 syslog(2)
来记录内核信息. 但是读该文件需要超级用户权限, 并且一次只能有一个进程可以读该文件, 因而如果一个使用了系统调用功能来记录内核信息的系统日志进程正在运行的话,别的进程就不能再去读该伪文件了.
该文件的内容可以用 dmesg(8)
来查看.
/proc/ksyms
该文件保存了内核输出的符号定义, 使用该文件动态地连接和捆绑可装载的模块.
/proc/kpagecount
TODO
/proc/kpageflags
TODO
/proc/loadavg
前三列是过去的 1, 5, 15 分钟的平均负载值, 与 uptime(1)
等命令的结果相同.
第四列是正在运行的进程数和总进程数
第五列是最近运行的进程pid
/proc/locks
这个文件显示当前文件锁.
/proc/malloc
只有在编译时定义了 CONFIGDEBUGMALLOC 才会有该文件.
/proc/mdstat
TODO
/proc/meminfo
free(1)
利用该文件来给出系统总的空闲内存和已用内存(包括物理内存和交换内存), 以及内核所使用的共享内存和缓冲区.
该文件与 free(1) \h'-1'
格式相同, 但是以字节为单位而不是 KB.
字段 | 释义 |
---|---|
MemTotal | 总内存 |
MemFree | 空闲内存 |
MemAvailable | |
Buffers | 给文件的缓冲大小 |
Cached | 高速缓冲存储器使用的大小 |
SwapCached | 被高速缓冲存储器用的交换空间大小 |
Active | 活跃使用中的高速缓冲存储器页面文件的大小 |
Inactive | 不经常使用中的高速缓冲存储器页面文件的大小 |
Activea | |
Inactivea | |
Activef | |
Inactivef | |
Unevictable | |
Mlocked | |
SwapTotal | 交换空间总大小 |
SwapFree | 空闲交换空间 |
Dirty | 等待被写回到磁盘的大小 |
Writeback | 正在被写回到磁盘的大小 |
AnonPages | 未映射的页的大小 |
Mapped | 设备和文件映射的大小 |
Shmem | |
Slab | 内核数据结构缓存的大小,可减少申请和释放内存带来的消耗 |
SReclaimable | 可回收slab的大小 |
SUnreclaim | 不可回收的slab的大小 |
KernelStack | |
PageTables | 管理内存分页的索引表的大小 |
NFS_Unstable | 不稳定页表的大小 |
Bounce | 退回 |
WritebackTmp | |
CommitLimit | |
Committed_AS | |
VmallocTotal | 虚拟内存大小 |
VmallocUsed | 已被使用的虚拟内存大小 |
VmallocChunk | |
Percpu | |
HardwareCorrupted | |
AnonHugePages | |
CmaTotal | |
CmaFree | |
HugePages_Total | 大页面的分配 |
HugePages_Free | |
HugePages_Rsvd | |
HugePages_Surp | |
Hugepagesize | |
DirectMap4k | |
DirectMap2M | |
DirectMap1G |
/proc/misc
TOOD
/proc/modules
列出了系统已载入的模块, 文本格式.
/proc/mounts
TODO
/proc/mtrr
TODO
/proc/net
该子目录包括多个 ASCII 格式的网络伪文件, 描述了网络层的部分情况. 可以用 cat 来察看这些文件, 但标准的 netstat(8)
命令组更清晰地给出了这些文件的信息.
/proc/net/arp
该文件以 ASCII 格式保存了内核 ARP 表, 用于地址解析, 包括静态和动态 arp 数据.
文件格式如下:
IP address HW type Flags HW address
10.11.100.129 0x1 0x6 00:20:8A:00:0C:5A
10.11.100.5 0x1 0x2 00:C0:EA:00:00:4E
44.131.10.6 0x3 0x2 GW4PTS
其中 ‘IP address’ 是机器的 IPv4 地址; ‘HW type’ 是地址的硬件类型, 遵循 RFC 826;
flags 是 ARP 结构的内部标志, 在 /usr/include/linux/if_arp.h
中定义;
‘HW address’ 是该IP 地址的物理层映射(如果知道的话).
/proc/net/dev
该伪文件包含网络设备状态信息, 给出了发送和收到的包的数目, 错误和冲突的数目, 以及别的一些基本统计数据.ifconfig(8)
利用了该文件来报告网络设备状态.
文件格式如下:
Inter-| Receive | Transmit
face |packets errs drop fifo frame|packets errs drop fifo colls carrier
lo: 0 0 0 0 0 2353 0 0 0 0 0
eth0: 644324 1 0 0 1 563770 0 0 0 581 0
/proc/net/dev_mcast
TODO
/proc/net/igmp
TODO
/proc/net/rarp
该文件具有和 arp
同样的格式, 包含当前的逆向地址映射数据.rarp(8)
利用这些数据来作逆向地址查询服务. 只有将 RARP 配置进内核, 该文件才存在.
/proc/net/raw
该文件保存了 RAW 套接字表, 大部分信息除用于调试以外没有什么用.
`sl’ 指出了套接字的内核散列槽号;
‘local address’ 包括本地地址和协议号对;
“St” 是套接字的内部状态;
tx_queue 和 rx_queue 是内核存储器使用意义上的输入输出数据队列;
RAW 没有使用”tr”, “tm-> when” 和 “rexmits”;
uid 是套接字创建者的有效 uid.
/proc/net/snmp
该文件以 ASCII 格式保存了 IP, ICMP, TCP 以及 UDP 管理所需的数据信息, 基于 snmp 协议.
Tcp
字段 | 说明 |
---|---|
ActiveOpens | 主动连接tcp请求数 |
PssiveOpens | 接收到的tcp请求数 |
AttemptFails | tcp连接失败个数:主动连接失败收到syn包回包syn+ack给对方后,被对方reset收到的请求中,同时有syn+rst+flag |
EstabRests | |
CurrEstab | tcp当前建立的连接的个数 |
Insegs | tcp接收的分片数 |
OutSegs | tcp发送的分片数 |
RetranSegs | 重传分片数 |
InErrs | tcp入包错误(pkg/m,通常是校验错误) |
OutRsts |
Udp
字段 | 说明 |
---|---|
InDatagrams | udp收包量 |
NoPorts | 未知端口接收数据包 |
InErrors | 本机端口未监听之外的其他原因引起的udp入包无法送达:1.收包缓冲区满, 2.入包校验失败. 3. 其他 |
OutDatagrams | udp发包量 |
RcvbufErrors | 接收缓冲区溢出的包量 |
SndbufErrors | 发送缓冲区溢出的包量 |
/proc/net/tcp
该文件保存了 TCP 套接字表, 大部分信息除用于调试以外没有什么用.
“sl” 指出了套接字的内核散列槽号;
“local address” 包括本地地址和端口号;
“remote address” 包括远地地址和端口号(如果有连接的话);
‘St’ 是套接字的内部状态;
‘tx_queue’ 和 ‘rx_queue’ 是内核存储器使用意义上的输入输出数据队列;
“tr”, “tm->when” 和 “rexmits” 保存了内核套接字声明的内部信息, 只用于调试;
uid是套接字创建者的有效 uid.
/proc/net/udp
该文件保存了 UDP 套接字表, 大部分信息除用于调试以外没有什么用.
“sl” 指出了套接字的内核散列槽号;
“local address”包括本地地址和端口号;
“remote address” 包括远地地址和端口号(如果有连接的话);
“St” 是套接字的内部状态;
“tx_queue” 和 “rx_queue” 是内核存储器使用意义上的输入输出数据队列;
UDP 没有使用 “tr”,”tm->when” 和 “rexmits”;
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
TODO
/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 域数据报套接字); St
是套接字内部状态; Path
套接字绑捆的路径(如果有的话).
\fIdisk 0 0 0 0\fP
目前并没有实现这四个磁盘记录, 我甚至认为就不应该实现它,这是由于在别的机器上内核统计通常依赖转换率及每秒 I/O 数, 而这令每个驱动器只能有一个域.
\fIpage 5741 1808\fP
系统(从磁盘)交换进的页数和交换出去的页数.
\fIswap 1 0\fP
取入的交换页及被取出的交换页的页数.
\fIintr 1462898\fP
系统自启动以来所收到的中断数.
\fIctxt 115315\fP
系统所作的进程环境切换次数.
\fIbtime 769041601\fP
系统自 1970 年 1 月 1 号以来总的运行时间, 以秒为单位.
/proc/pagetypeinfo
TODO
/proc/partitions
TODO
/proc/pci
该文件列出了内核初始化时发现的所有 PCI 设备及其配置.
/proc/profile
TODO
/proc/sched_debug
TODO
/proc/schedstat
TODO
/proc/scsi
该目录包括 scsi 中间层伪文件及各种 SCSI 底层驱动器子目录,对系统中每个 SCSI host, 子目录中都存在一个文件与之对应, 展示了部分 SCSI IO 子系统的状态. 这些文件是 ASCII 格式 的, 可用cat阅读.
你也可以通过写其中某些文件来重新配置该子系统, 开关一些功能.
/proc/scsi/scsi
该文件列出了内核掌握的所有 SCSI 设备, 其内容就和系统启动时所看到的类似. 目前 scsi 只支持 \fIsingledevice\fP
命令, 该命令允许 root 添加一个热插 拔(hotplugged)设备到一个已知设备列表中.
echo 'scsi singledevice 1 0 5 0' > /proc/scsi/scsi
该命令令 host scsi1 扫描 SCSI 通道 0, 看在 ID 5 LUN 0 是否存在设备, 如果在该地址 存在设备, 或者该地址无效, 则返回一个错误.
/proc/scsi/[drivername]
目前 \fIdrivername\fP
可包含: NCR53c7xx
, aha152x
, aha1542
, aha1740
, aic7xxx
, buslogic
, eata_dma
, eata_pio
, fdomain
, in2000
, pas16
, qlogic
, scsi_debug
, seagate
, t128
, u15-24f
, ultrastore
或者 wd7000
. 这些目录展示那些至少注册了一个 SCSI HBA 的驱动. 而对每个已注册的 host, 每个目录中都包含一个文件与之对应, 而这些对应的 host 文件就以初始化时分配给 host 的数字来命名.
这些文件给出了驱动程序以及设备的配置, 统计数据等.
可以通过写这些文件实现不同的 host 上做不同的工作. 例如, root 可以用 \fIlatency\fP
和 \fInolatency\fP
命令打 开或者关闭 eata_dma 驱动器上测量延时的代码, 也可以用 \fIlockup\fP
和 \fIunlock\fP
命令 控制 scsi_debug 驱动器所模拟的总线锁操作.
/proc/self
当某进程访问 /proc
目录时, 该目录就指向 /proc
下以该进
程 pid 命名的目录.
/proc/slabinfo
TODO
/proc/softirqs
TODO
/proc/stat
内核及系统的统计数据.因架构而异
cpu 36364572 5995 38145981 1178390849 4661011 0 128118 0 0 0
cpu0 17334331 2770 18585681 591144054 1591039 0 92513 0 0 0
cpu1 19030240 3224 19560300 587246794 3069972 0 35605 0 0 0
intr 4662961467 68 10 0 0 839 0 3 0 0 0 0 34 15 0 0 0 0 0 0 0 0 0 0 0 0 45469652 1 14535056 291 0 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 7579351839
btime 1596255026
processes 99453314
procs_running 2
procs_blocked 0
softirq 2898201349 3 1403400386 90 44779554 45384695 0 161 472734207 0 931902253
说明
cpu行关系对应说明
cpu
user
nice
system
idle
iowait
irq
softirq
steal
guest
guest_nice
名字 | 说明 |
---|---|
user | 用户态cpu时间 |
nice | 低优先级程序所占用的用户态cpu时间 |
system | 系統态的cpu时间 |
idle | cpu空闲的时间 |
iowait | 等待io响应的时间 |
irq | 处理硬中断的时间 |
softirq | 处理软中断的时间 |
steal | 其他系统所花的时间(虚拟环境中运行的其他操作系统) |
guest | 运行时间为客户操作系统下的虚拟cpu控制(访客) |
guest_nice | 低优先级程序所占用的用户态的cpu时间(访客) |
其它说明
名字 | 说明 |
---|---|
intr | 系统中断的信息,第一个为自系统启动以来,发生的所有中断的次数;然后每个数值对应一个特定的中断自系统启动以来发生的次数 |
ctxt | 自系统启动以来cpu发生的上下文交互次数 |
btime | 开机时间(以utc时间开始计算,单位为秒) |
processes | 自系统启动以来所创建的任务的个数 |
proces_running | 当前运行队列的任务数目 |
proces_blocked | 当前被阻塞的任务数目 |
spftirq | 软中断的情况 |
/proc/swaps
TODO
/proc/sys
该目录在 1.3.57 的内核里开始出现, 包含一些对应于内核变量的文件和子目录. 你可以读这些变量, 有的也可以通过 \fIproc\fP
修改, 或者用系统调用 sysctl (2)
修改.
/proc/sys/abi
TODO
/proc/sys/debug
TODO
/proc/sys/dev
TODO
/proc/sys/fs
TODO
- binfmt_misc
- dentry-state
- dir-notify-enable
- dquot-max
- dquot-nr
- epoll
- file-max
给出系统所容许的最大可打开文件数.
- file-nr
给出当前打开的文件数.
- inode-max
- inode-nr
- inode-state
- inotify
- lease-break-time
- leases-enable
- mqueue
- overflowgid
- pipe-max-size
- protected_hardlinks
- protected_symlinks
- suid_dumpable
- super-max
- super-nr
TODO
/proc/sys/kernel
该目录包括如下文件:
- acct
- cap_last_cap
- cap-bount
- core_pattern
- core_uses_pid
- ctrl-alt-del
- dmesg_restrict
- domainname
- hostname
- hotplug
- htab-reclaim
- kptr_restrict
- l2cr
- modprobe
- modules_disabled
- msgmax
- msgmni
- msgmnb
- ostype
- osrelease
- overflowgid
- overflowuid
- panic
- panic_on_oops
- pid_max
- powersave
- printk
- pty
- max
- nr
- random
- real-root-dev
- reboot-cmd
- rtsig-max
- rtsig-nr
- sched_rr_timeslice_ms
- sem
- sg-big-buff
- shm_rmid_forced
- shmall
- shmmax
- shmmni
- sysrq
- version
- threads-max
- zero-paged
/proc/sys/net
该目录包括如下文件:
- core
- somaxconn
/proc/sys/proc
TODO
/proc/sys/sunrpc
TODO
/proc/sys/vm
该目录包括如下文件:
- drop_caches
- legacy_va_layout
- memory_failure_early_kill
- memory_failure_recovery
- oom_dump_tasks
- oom_kill_allocating_task
- overcommit_memory
- overcommit_ratio
- panic_on_oom
- swappiness
/proc/sysrq-trigger
TODO
/proc/sysvipc
TODO
/proc/tty
- …..
TODO
/proc/uptime
TODO
/proc/version
TODO
/proc/vmallocinfo
TODO
/proc/vmstat
TODO
/proc/zoneinfo
TODO
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 245292011@qq.com