nux 系统文件 /proc/{$pid}/status 会记录某个进程的运行状态,里面的 VmRSS 字段记录了该进程使用的常驻物理内存(Residence),这个就是该进程实际占用的物理内存了,用这个数据比较靠谱,在程序里面提取这个值也很容易
ps:虽然垃圾回收让php开发者在内存管理上无需担心了,但也有极端的反例:php界著名的包管理工具composer曾因加入一行gc_disable();性能得到极大提升。
两步:
1)Top查看进程PID。
ps -ef|grep redis
redis 22261 1 7 Sep28 ? 5-00:29:08 /usr/local/redis/bin/redis-server 0.0.0.0:6380
2)查看进程的内存大小:
换算公式:
1 GB = 1,048,576 kB(=1024×1024)
VmSize 换算成 GB:
11037068 / 1,048,576 ≈ 10.53 GB
VmRSS(真实占用内存)
8149080 / 1,048,576 ≈ 7.77 GB
#redis-cli -p 6380
127.0.0.1:6380> auth Kiz456!@*****
OK
127.0.0.1:6380> info memory
used_memory_human:8.83G
used_memory_rss_human:7.77G
......
重点字段:
used_memory_human(实际 Redis 使用内存)
used_memory_rss_human(进程 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/
ps:虽然垃圾回收让php开发者在内存管理上无需担心了,但也有极端的反例:php界著名的包管理工具composer曾因加入一行gc_disable();性能得到极大提升。
两步:
1)Top查看进程PID。
ps -ef|grep redis
redis 22261 1 7 Sep28 ? 5-00:29:08 /usr/local/redis/bin/redis-server 0.0.0.0:6380
2)查看进程的内存大小:
换算公式:
1 GB = 1,048,576 kB(=1024×1024)
VmSize 换算成 GB:
11037068 / 1,048,576 ≈ 10.53 GB
VmRSS(真实占用内存)
8149080 / 1,048,576 ≈ 7.77 GB
#redis-cli -p 6380
127.0.0.1:6380> auth Kiz456!@*****
OK
127.0.0.1:6380> info memory
used_memory_human:8.83G
used_memory_rss_human:7.77G
......
重点字段:
used_memory_human(实际 Redis 使用内存)
used_memory_rss_human(进程 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/
作者:jack@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/4704/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jack 编辑于2025-12-5 17:56
评论列表
2011-10-19 18:50 | hunhu36619
神马
分页: 1/1
1
1


马化腾:把坏事变好事是一个能力
Kernel.org回归 源代码未被攻破