linux系统中常用cat /proc/{pid}/status 和**pmap -x {pid}**来监测某个进程的内存资源占用情况。
其中注意各参数的含义如下:
VmSize:表示进程当前虚拟内存大小
VmPeak:表示进程所占用最大虚拟内存大小
VmRSS:表示进程当前占用物理内存的大小(与procrank中的RSS,pmap中的RSS一样)
VmLck:表示被锁定的内存大小
VmHWM:表示进程所占用物理内存的峰值
VmData:表示进程数据段的大小
VmStk:表示进程堆栈段的大小
VmExe:表示进程代码的大小
VmLib:表示进程所使用共享库的大小
VmPTE:表示进程页表项的大小
监测简本如下:
bash
#!/bin/sh
#根据程序名获取pid信息
process_name=$1
pid=$(pidof $process_name)
echo "Memory monitor process script running..."
#开始周期性的监测,pmap和cat效果差不多
while true
do
pmap -x $pid
#cat /proc/$pid/status
sleep 10
done