8,/proc/<pid>/ 目录下各个文件的含义,以com.android.chrome为例
cmdline: com.android.chrome
environ: 这是个比较有用的文件,里面记录了当前进程的一些环境变量
exe: 这个就是气这个进程的执行文件,bin文件
fd目录: 该目录下记录的是该进程打开的所有文件的文件描述符
limits: 这个里面限制了进程对系统资源的使用额度,
root@msm8909:/proc/14467 # cat limits
cat limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 6833 6833 processes
Max open files 1024 4096 files
Max locked memory 67108864 67108864 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 6833 6833 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 40 40
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
oom_adj/oom_score: 这两个与linux的OOM机制有关的文件(关于OOM请看这里),oom_adj相当于一个因子,它值越大,在OOM时更容易被系统kill掉
stat/status: 这两者要表示的信息都是一样的,进程的基本状态
root@msm8909:/proc/14467 # cat status
cat status
Name: .android.chrome
State: S (sleeping)
Tgid: 14467
Pid: 14467
PPid: 9348
TracerPid: 0
Uid: 10040 10040 10040 10040
Gid: 10040 10040 10040 10040
FDSize: 256------------------------文件描述符的最大个数,最多能打开的文件句柄的个数file->fds
Groups: 1015 1028 3003 50040
VmPeak: 613468 kB----------------进程地址空间的大小
VmSize: 607980 kB-----------------任务虚拟地址空间的大小 (total_vm-reserved_vm),其中total_vm为进程的地址空间的大小,reserved_vm:进程在预留或特殊的内存间的物理页
VmLck: 0 kB-----------------任务已经锁住的物理内存的大小。锁住的物理内存不能交换到硬盘(locked_vm)
VmPin: 0 kB
VmHWM: 59180 kB------------------文件内存映射和匿名内存映射的大小
VmRSS: 59136 kB------------------应用程序正在使用的物理内存的大小,就是用ps命令的参数rss的值 (rss)
VmData: 47340 kB------------------程序数据段的大小(所占虚拟内存的大小),存放初始化了的数据; (total_vm-shared_vm-stack_vm)
VmStk: 136 kB------------------任务在用户态的栈的大小 (stack_vm)
VmExe: 8 kB-------------------程序所拥有的可执行虚拟内存的大小,代码段,不包括任务使用的库 (end_code-start_code)
VmLib: 83824 kB-------------------被映像到任务的虚拟内存空间的库的大小 (exec_lib)
VmPTE: 210 kB-------------------该进程的所有页表的大小,单位:kb
VmSwap: 0 kB
Threads: 37
SigQ: 0/6833------------------------待处理信号的个数
SigPnd: 0000000000000000--------------屏蔽位,存储了该线程的待处理信号
ShdPnd: 0000000000000000--------------屏蔽位,存储了该线程组的待处理信号
SigBlk: 0000000000001204--------------存放被阻塞的信号
SigIgn: 0000000000000000--------------存放被忽略的信号
SigCgt: 00000002000094f8--------------存放被俘获到的信号
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000000000000000
Seccomp: 0
Cpus_allowed: f
Cpus_allowed_list: 0-3
voluntary_ctxt_switches: 7868
nonvoluntary_ctxt_switches: 1827
smaps: 该文件反映了该进程的相应线性区域的大小
每行数据格式如下:
(内存区域)开始-结束 访问权限 偏移 主设备号:次设备号 i节点 文件。
be8f1000-be906000 rwxp be8f1000 00:00 0 [stack]
Size:相应虚拟地址空间的大小
RSS: 正在使用的物理内存的大小
Shared_Clean: 共享区域的未使用页数
Shared_Dirty: 共享区域已经使用的页数
Private_Clean: 私有区域未使用的页数
Private_Dirty: 私有区域已经使用的页数
maps: 该文件反映了进程占用的内存区域
64a7e000-64aa2000 rw-p 00000000 00:00 0 [anon:libc_malloc]
64ad8000-64ae2000 rw-p 00000000 00:00 0 [anon:libc_malloc]
64b27000-64b74000 rw-p 00000000 00:00 0 [anon:libc_malloc]
64b74000-64b75000 ---p 00000000 00:00 0
64b75000-64c72000 rw-p 00000000 00:00 0 [stack:14550]
64c72000-64e03000 rw-s 00000000 00:08 5934 anon_inode:dmabuf
64e03000-64f94000 rw-s 00000000 00:08 5934 anon_inode:dmabuf
be952000-be973000 rw-p 00000000 00:00 0 [stack]
ffff0000-ffff1000 r-xp 00000000 00:00 0 [vectors]
task: 进程包含的线程,子目录名是线程的ID