linux proc分析DOC.docx
- 文档编号:1839783
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:19
- 大小:26.24KB
linux proc分析DOC.docx
《linux proc分析DOC.docx》由会员分享,可在线阅读,更多相关《linux proc分析DOC.docx(19页珍藏版)》请在冰豆网上搜索。
linuxproc分析DOC
linuxproc详解
proc文件系统总览:
在unixlike操作系统中,几乎所有的数据实体都被抽象成文件。
可以认为procfs文件系统的作用是将内核信息抽象成文件接口,内核信息和可设置参数都以文件的形式存在,并组成1个目录树。
使得用户可通过文件系统接口(echo,cat等命令,只要权限允许)来获取和调整内核状态。
同时procfs文件系统也为用户提供了1个接口,使得用户的内核模块或用户态程序可通过procfs传递参数。
linux中的一些系统工具需要通过procfs获取内核参数,比如ps、lspci等命令。
可通过以下命令加载1个procfs文件系统(首先需要确认目标系统支持procfs):
#mount–tprocnone/proc
也可在/etc/fstab文件中加入以下命令,使得系统在启动时自动加载procfs:
none/procprocdefaults00
在proc文件系统中,主要包含3部分内容,进程相关部分、系统信息部分以及各子系统相关部分。
以下为1个典型的procfs文件系统目录示例:
>ls/proc
1221662281cmdlineinterruptsmeminfostat
13200121673cpuinfoiomemmiscswaps
1646204221684cryptoioportsmodulessys
1780205821695devicesirqmountssysrq-trigger
1834208721706dmaisapnpmtrrsysvipc
1838209621717driverkcorenettty
18572107220771execdomainskmsgpartitionsuptime
1877211722088fbksymspciversion
1889214322169filesystemsloadavgscsi
190521532217apmfslocksself
196021652219busidemdstatslabinfo
从以上输出中可看到procfs所包含的内容:
1.进程相关部分(只读):
在procfs中存在一些以数字(pid)命名的目录,该数字即为对应进程的pid。
/proc/self目录是1个指向当前进程的符号链接。
当用户执行catself/cmdline命令时,会为执行cat命令而创建1个进程,并输出当前进程的命令行参数,也就是catself/cmdline(会省略空格)。
2.内核信息部分(只读):
这部分文件一般位于/proc目录下,可通过cat命令进行查看。
会在/proc/cmdline文件中保存内核引导时的命令行参数:
cat/proc/cmdline
roroot=/dev/hda2
3.内核各子系统相关部分(部分可调):
在proc文件系统中会保存内核各子系统的信息和可调参数。
主要有:
(1)bus:
总线信息;
(2)drivers:
驱动信息;
(3)fs:
文件系统特别信息;
(4)ide:
IDE接口信息;
(5)irq:
IRQ信息:
(6)net:
网络子系统信息;
(7)scsi:
SCSI系统信息;
(8)sysvipc:
IPC子系统信息;
(9)tty:
tty子系统信息(以上9项均为只读的);
(10)sys:
系统内核可调参数。
linux内核中的大部分可调整参数被放置到/proc/sys目录下,这些参数以常规文件的形式体现,并可通过echo、cat等文件操作命令进行调整。
在linux中也可通过sysctl方法来调整内核参数。
sysctl方法是从BSD系统继承而来的1种动态调整内核参数的方法。
在使用sysctl方法时,可将配置参数保存在/etc/sysctl.conf文件中,以便在启动时自动加载这些配置
进程相关子目录:
在/proc目录下存在一系列以数字命名的子目录,每个目录对应系统中当前存在的1个进程,目录名即为进程pid。
进程相关目录用来存放对应进程的相关信息。
进程相关目录中存在如下文件:
文件名
内容
cmdline
执行进程的命令行参数
cpu
smp系统中最后使用的cpu
cwd
到当前工作目录的符号链接
environ
环境变量
exe
链接到进程对应的可执行文件
fd
该目录中保存进程所有打开的文件描述符
maps
进程内存映射,包含进程执行空间和动态链接库信息(2.4)
mem
进程内存空间
root
链接到进程执行时的‘/’(root)目录
stat
进程状态
statm
进程内存状态
status
进程状态总览,包含进程名字,当前状态和各种信息统计。
可通过读取/proc/pid目录下的status文件,获得pid进程的当前状态。
>cat/proc/self/status#/proc/self为指向当前执行进程的符号链接
Name:
cat
State:
R(running)
Pid:
5452
PPid:
743
TracerPid:
0(2.4)
Uid:
501501501501
Gid:
100100100100
Groups:
1001416
VmSize:
1112kB
VmLck:
0kB
VmRSS:
348kB
VmData:
24kB
VmStk:
12kB
VmExe:
8kB
VmLib:
1044kB
SigPnd:
0000000000000000
SigBlk:
0000000000000000
SigIgn:
0000000000000000
SigCgt:
0000000000000000
CapInh:
00000000fffffeff
CapPrm:
0000000000000000
CapEff:
0000000000000000
以上示例显示的进程信息与用户执行/bin/ps命令获得的进程信息基本相同,这是因为ps命令也是通过procfs来获取进程信息的。
在statm文件中记录了进程内存信息,如下所示:
cat/proc/self/statm
105105934128912
以上输出信息含义如下:
size:
程序大小;
resident:
常驻内存空间大小;
shared:
共享内存页数;
trs:
代码段占用内存页数;
drs:
数据/堆栈段占用内存页数;
lrs:
引用库占用内存页数;
dt:
脏页数量。
内核数据信息:
/proc目录下的某些文件和目录记录了内核相关信息,这些文件有如下几种(根据系统配置和所加载的模块,不同系统所显示的文件种类不同):
文件
说明
apm
高级电源管理
bus
bus总线相关信息
cmdline
内核引导命令行参数
cpuinfo
cpu信息
devices
当前可用设备(块设备和字符设备)
dma
dma通道使用情况
filesystem
当前内核支持的文件系统类型
driver
驱动相关信息(2.4)
execdomains
安全相关的execdomains信息(2.4)
fb
framebuffer设备(2.4)
fs
本地文件系统参数(2.4)
ide
ide子系统相关信息
interrupts
中断使用情况
iomem
内存映射图(2.4)
ioports
io端口使用情况
irq
cpu的irq使用情况(2.4,smp)
isapnp
ISApnp相关信息
kcore
kernelcoreimage内核转储映像(2.4)
kmsg
kernelmessages
ksyms
kernelsymboltable内核符号表
loadavg
最后1,5,15分钟的平均负载
locks
kernellocks,内核锁信息
meminfo
内存信息
misc
内核杂项信息
modules
已加载的内核模块列表
mounts
已加载文件系统
net
网络子系统信息
partitions
已识别的本地系统分区表
pci
pci总线相关信息,在新版本中指向/proc/bus/pci(2.4)
rtc
rtc实时时钟
scsi
scsi总线信息
slabinfo
slab内存分配池信息
stat
内核状态总览
swaps
swap空间状态
sys
内核系统参数
sysvipc
sysvipc资源状态(msg,sem,shm)(2.4)
tty
tty驱动信息
uptime
系统uptime
version
内核版本
video
video资源状态(2.4)
可使用系统中的文件访问命令访问/proc目录中的文件(只要权限允许),例如查看系统中断信息:
cat/proc/interrupts
CPU0
0:
8728810XT-PICtimer
1:
895XT-PICkeyboard
2:
0XT-PICcascade
3:
531695XT-PICaha152x
4:
2014133XT-PICserial
5:
44401XT-PICpcnet_cs
8:
2XT-PICrtc
11:
8XT-PICi82365
12:
182918XT-PICPS/2Mouse
13:
1XT-PICfpu
14:
1232265XT-PICide0
15:
7XT-PICide1
NMI:
0
在2.4版本内核中,当使能smp时这个文件末尾会多出2行smp相关属性LOC&ERR:
cat/proc/interrupts
CPU0CPU1
0:
12434981214548IO-APIC-edgetimer
1:
89498958IO-APIC-edgekeyboard
2:
00XT-PICcascade
5:
1128610161IO-APIC-edgesoundblaster
8:
10IO-APIC-edgertc
9:
2742227407IO-APIC-edge3c503
12:
113645113873IO-APIC-edgePS/2Mouse
13:
00XT-PICfpu
14:
2249124012IO-APIC-edgeide0
15:
21832415IO-APIC-edgeide1
17:
3056430414IO-APIC-leveleth0
18:
177164IO-APIC-levelbttv
NMI:
24579612457959
LOC:
24578822457881
ERR:
2155
NMI是每个cpu上产生的不可屏蔽中断(NonMaskableInterrupt)计数。
LOC是每个cpu上APIC本地中断计数。
ERR是smp系统中IO-APIC总线失败错误的计数。
若该数值较高,可能当前内核的运行会有问题,此时可能需要测试内核,查看硬件和APIC是否有兼容性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux proc分析DOC proc 分析 DOC
![提示](https://static.bdocx.com/images/bang_tan.gif)