日期:2014-05-16  浏览次数:20706 次

linux内存数据含义

这里我们主要介绍进程的状态,进程的状态可以通过/proc/PID/status来查看,也可以通过/proc/PID/stat来查看。

如果说到工具大家用的最多的ps也可以看到进程的信息。这里我们通过/proc/PID/status来分析进程的信息。

?

写道
Name: DataCell 进程名称
State: S (sleeping) 进程状态『R (running)", "S (sleeping)", "D (disk sleep)", "T (stopped)", "T(tracing stop)", "Z (zombie)", or "X (dead)"』
Tgid: 21654 Tgid是线程组的ID,一个线程一定属于一个线程组(进程组).
Pid: 21654 这个是进程的ID,更准确的说应该是线程的ID.
PPid: 1 当前进程的父进程
TracerPid: 0 跟踪当前进程的进程ID,如果是0,表示没有跟踪.
Uid: 500 500 500 500
Gid: 0 0 0 0
Utrace: 0
FDSize: 128 FDSize是当前分配的文件描述符,这个值不是当前进程使用文件描述符的上限
Groups: 0 这里的groups表示启动这个进程的用户所在的组
VmPeak: 6463428 kB 这里的VmPeak代表当前进程运行过程中占用内存的峰值
VmSize: 6463428 kB VmSize代表进程现在正在占用的内存(任务虚拟地址空间的大小)
VmLck: 0 kB VmLck代表进程已经锁住的物理内存的大小.锁住的物理内存不能交换到硬盘.
VmHWM: 387032 kB 是程序得到分配到物理内存的峰值
VmRSS: 385816 kB 是程序现在使用的物理内存
VmData: 6410876 kB 表示进程数据段的大小(程序数据段的大小(所占虚拟内存的大小)存放初始化了的数据).
VmStk: 88 kB 表示进程堆栈段的大小.(任务在用户态的栈的大小
VmExe: 4940 kB 表示进程代码的大小.
VmLib: 10232 kB 表示进程所使用LIB库的大小.
VmPTE: 572 kB
VmSwap: 0 kB 进程占用Swap的大小
Threads: 46 表示当前进程组有46个线程.
SigQ: 0/192017
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: fffffffe3ffbea07
SigIgn: 0000000000391000
SigCgt: 0000000180004003
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: ffffff
Cpus_allowed_list: 0-23
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 1584
nonvoluntary_ctxt_switches: 7

?

http://www.cnblogs.com/eustoma/archive/2012/04/27/2473175.html

?

当前进程正在使用的内存=进程数据段虚拟内存+进程使用lib库占用内存+进程执行占用内存+进程堆栈+.......

VmSize=VmData + VmLib +VmExe + VmStk+........

6463428=6410876+10232+4940+88+..........

http://hi.baidu.com/osidy/item/4b4ab30b8c847fea34990259