[实践OK]得到linux下某一进程占用内存 , /proc/{$pid}/status 里的VmRSS字段就是实际占用多少内存。

jackxiang 2011-10-7 15:12 | |

nux 系统文件 /proc/{$pid}/status 会记录某个进程的运行状态,里面的 VmRSS 字段记录了该进程使用的常驻物理内存(Residence),这个就是该进程实际占用的物理内存了,用这个数据比较靠谱,在程序里面提取这个值也很容易
ps:虽然垃圾回收让php开发者在内存管理上无需担心了,但也有极端的反例:php界著名的包管理工具composer曾因加入一行gc_disable();性能得到极大提升。
两步:
1)Top查看进程PID。
2)查看进程的内存大小:

VmSize(KB) 任务虚拟地址空间的大小
VmRSS(KB) 应用程序正在使用的物理内存的大小,就是用ps命令的参数rss的值 (rss)

3)将KB换为G或M看:
https://www.wntool.com/filesize/
5020236 kb = 4.787670135498047GB

常用ps命令参数:最常用的三个参数是u、a、x,下面将通过例子来说明其具体用法。
p
pid
进程ID
u
user
用户名
x 显示没有控制终端的进程。

可以使用u选项来查看进程所有者及其他一些详细信息,如下所示:
ps aux|grep dio_open_usb2|grep -v grep
root     10952  0.0  0.2  37436  8848 pts/0    S+   14:50   0:00 php dio_open_usb2.php
从上面可以得到信息如下:
还可以看到%CPU、%MEM两个选项,前者指该进程占用的CPU时间和总时间的百分比;后者指该进程占用的内存和总内存的百分比。
即:该程序占用内存8848,我们只看内存,也也以这样看内存,10952是它的PID号,则这样看:



该文件里面有很多项的,如下:
cat /proc/10952/status
Name:   php
State:  S (sleeping)
Tgid:   10952
Pid:    10952
......
VmSize:    37436 kB
VmRSS:      8848 kB
......

解释:
VmSize(KB) 任务虚拟地址空间的大小
VmRSS(KB) 应用程序正在使用的物理内存的大小,就是用ps命令的参数rss的值 (rss)






参考来源:
http://apps.hi.baidu.com/share/detail/17897258
http://enterparse.blog.163.com/blog/static/11713797420096921232931/

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/4704/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2019-2-19 16:46
评论列表
2011-10-19 18:50 | hunhu36619 Email Homepage
神马
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]