查看某进程内存使用情況的shell脚本(图文)
时间:2014-10-01 08:58 来源:jbxue.com 作者:it
可以检测linux下进程的内存使用情况,包括父进程、子进程均可。
有了这个小脚本,用于分析httpd或mysql等的内存使用详情,真是方便多了。
代码如下:
复制代码代码示例:
#!/bin/bash
#linux进程内存使用情况分析
#filename process.sh
#edit by www.jbxue.com
if [ $# -ne 1 ] #判断参数是否为空
then
echo "usage error";
echo "$0 pid";
exit 1;
fi
pid=$1
file=/proc/$pid/status //实时内存使用情况
i=0;
lines=0;
kill -SIGWINCH $$
while :
do
if [ ! -f $file ]
then
echo "process exit";
break;
fi
if ((LINES > 0))
then
((lines = LINES - 1))
else
((lines = 20))
fi
if (( i % lines == 0 ))
then
echo -e "VmPeak\tVmSize\tVmLck\tVmHWM\tVmRSS\tVmData\tVmStk\tVmExe\tVmLib\tVmPTE\tThreads\tSigQ"
fi
awk '{
if($1 ~ /^Vm/) {printf("%s\t", $2);}
if($1 ~/^Threads:$/) {printf("%s\t", $2);}
if($1 ~/^SigQ:$/) {printf("%s\t", $2);}
}
END{printf("\n");}' $file;
((i++))
sleep 1;
done
代码说明:
1,此sh脚本接收一个参数,参数值为进程的id号。
这个可以用ps -ef查询得到。
比如查询httpd的父、子进程id,运行命令:
复制代码代码示例:
#ps -ef |grep apache
如下图:

2,调用方式:
比如上图中,apache父进程的id号为3649,那么运行如下命令:
复制代码代码示例:
#./process.sh 3649
即可实时显示该进程的内存使用情况了,如下图:

(责任编辑:IT)
可以检测linux下进程的内存使用情况,包括父进程、子进程均可。 有了这个小脚本,用于分析httpd或mysql等的内存使用详情,真是方便多了。
代码如下:
复制代码代码示例:
#!/bin/bash
if [ $# -ne 1 ] #判断参数是否为空
pid=$1
代码说明:
复制代码代码示例:
#ps -ef |grep apache
如下图:
2,调用方式:
复制代码代码示例:
#./process.sh 3649
即可实时显示该进程的内存使用情况了,如下图: |