分类: 系统运维
2013-02-01 22:22:06
在 linux 系统中,/proc/$PID/status 文件给我们提供了该进程资源(内存,堆栈,信号量,子父进程)的使用情况,虽然linux为我们提供了不少查看内存的命令,但都是看整体的使用情况,无法对单个进程的内存使用情况进行查看
以下的这个脚本就是通过查看status文件中VmRSS的字段来看系统或者进程使用的内存情况,脚本如下:
#! /bin/bash echo -n "PidName " > /root/script/pid.f echo "MeMery " >> /root/script/pid.f PIDPATH=/proc/ TOTLE=0 cd $PIDPATH DOC=`ls` for DOCNAME in $DOC do if [ -d $DOCNAME ]; then cd $DOCNAME if [ -f status ];then MEMERY=`grep VmRSS status | awk -F':' '{print $2}' | awk '{print $1}'` PIDNAME=`grep Name status | awk -F':' '{print $2}'` if [ $MEMERY ]; then echo -n $PIDNAME >> /root/script/pid.f echo -n " " >> /root/script/pid.f echo $MEMERY >> /root/script/pid.f TOTLE=`expr $TOTLE + $MEMERY` cd .. else cd .. fi else cd .. fi fi done TOTLE=`expr $TOTLE / 1024` echo "TOTLE USERD: $TOTLE MB" >> /root/script/pid.f cat /root/script/pid.f