这里我们主要介绍进程的状态,进程的状态可以通过/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代表进程现在正在占用的内存(任务虚拟地址空间的大小)
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 表示进程数据段的大小(程序数据段的大小(所占虚拟内存的大小)存放初始化了的数据).
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
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+..........
相关推荐
本文简要介绍Linux内存管理进程所涉及到的五个数据段。
用java取得linux系统cpu、内存的实时信息
内存表数据结构是指在内存中建立类似传统关系数据库管理系统(ORCALE、MS SQL SERVER)建立的表,区别在于内存表中的所有记录数据和索引数据都保存在内存. 本附加包括:动态库、头文件、用户文档、demo。
python脚本根据linux内存/CPU情况生成csv文件可描绘数据散点图,用于分析具体时间段内系统内存和cpu波动情况。 1.执行linux查询命令,查询进程号,然后输出持续一段时间该进程内存CPU占用数据 top -d 5 -b -p ...
Linux共享内存C语言编程示例(包含一个应用的范例)
在linux系统中,查看内存条个数,及每根内存的大小,可以使用dmidecode命令。 如下: #dmidecode | grep -A16 Memory Device$ 输出结果: Memory Device #存储设备 Array Handle: 0x1000 #阵列处理 Error ...
在linux下有很多命令,可以查看机器的硬件信息。 这里介绍一个查看内存的条数等信息的方法。 相看硬件信息,仅适合ubuntu系列发行版: lshw Linux 下查看内存条数: ... 您可能感兴趣的文章:Linux下安装MariaDB数据
Cache 层在内存中缓存了磁盘上的部分数据。当数据的请求到达时,如果在 cache 中存在该数据且是最新的,则直接将数据传递给用户程序,免除了对底层磁盘的操作,提高了性能。 4.通用块层:接收上层发出的磁盘请求,...
在Linux上,内存交换有着特殊的作用,块设备在当前的Linux内核上充当交换区时,工作得很好;Nandflash在写入数据之前需要先擦除,因此当Nandflash充当交换区时,当前的内存交换模型就需要改进,否则内存交换就不能...
本文档主要用处处理,在linux环境下出现的数据库内存溢出的处理方法
在linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得...
基于C语言和linux共享内存的数据分发软件
【需求描述】 1、共享内存保存信息 2、提供接口写入共享内存 3、提供接口获取共享内存 【编写语言:C】 【环境:linux】 1、写入内存一千万条数据 耗时:5.356秒 2、读取内存一千万条数据 耗时:1.449秒
缓存并不是在进程结束的时候被回收,而是随需回收--比如,当你启动一个需要大量内存的进程时,Linux核心会从内存中回收缓存,将得到的内存分配给新的进程。有些区域,比如匿名内存映射(mmps)和共享内存区域,它们被...
我们通过free命令查看机器空闲内存时,会发现free的值很...这主要是因为,在linux中有这么一种思想,内存不用白不用,因此它尽可能的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是可以立刻拿来使用的。
linux多线程间使用共享内存例程,C++版本。可用于大量数据的多线程共享。
rtsp_server 为工程主目录 livelib 为live555 库目录 RtspServer.cpp 为主程序 H264LiveVideoServerMediaSubsession.cpp H264LiveVideoSource.cpp 为创建对话和获取帧类 其他为平台获取帧代码和库
1、SDK开发包包括:动态库、头文件、开发手册、demo。 2、内存多级树树SDK中的API支持以下功能 1)插入节点 2)精确删除节点 3)正向模糊匹配 ...13)内存数据表 14)内存目录数据结构 15)域名解析
readdata.py 读取 sar 获得cpu和内存监控数据。 filtration.py 进行滤波。 watch_filter.py 将滤波后的数据以图像显示。 滤波算法: 过滤周期小于35s,峰值小于5%的波动。