Linux centos安装smem内存任务管理器,来查看进程占用多少swap虚拟内存,调用smaps查询泄漏
Linux centos安装smem内存任务管理器,来查看进程占用多少swap虚拟内存,调用smaps查询泄漏可以直接用Linux自带的smaps,pid自行替换
cat /proc/3192/smaps | grep -i swap
统计每个模块和函数并且使用MB输出
grep -i swap /proc/3192/smaps | awk '{sum += $2} END {print sum/1024 " MB"}'
也可以安装smem,更详细的显示
yum -y install smem
物理内存排序
smem -kr
swap虚拟内存排序
smem -krs swap
-k 输出精简的进程内存信息
-r 选项表示按内存使用量反转排序,使其显示在最上方
-s 选项后面可以跟一个字段,用于指定排序的名称
smem的RSS对应top中的RES(真实物理内存使用),由于top看不了swap,所以才需要smem
拿到pid后,就可以用smaps去看是什么情况了,就可以得知进程名/vhs/kangle//ext/tpl_php722(显示被截断不完整,目录是tpl_php7220,后面就不知道了)发现是进程堆占用(heap)
cat /proc/3192/smaps > smaps.log
02e5f000-272f3000 rw-p 00000000 00:00 0
Size: 594512 kB
Rss: 142356 kB
Pss: 142356 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 142356 kB
Referenced: 106908 kB
Anonymous: 142356 kB
AnonHugePages: 30720 kB
Swap: 452068 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
VmFlags: rd wr mr mw me ac
找到问题是php7.2发生内存泄漏后如何解决呢
https://bbs.itzmx.com/thread-111106-1-1.html
页:
[1]