swap=`echo $meminfoline |awk '{print $6}'`
total_rss=$((total_rss+rss))
total_private_clean=$((total_private_clean+private_clean))
total_private_dirty=$((total_private_dirty+private_dirty))
total_shared_dirty=$((total_shared_dirty+shared_dirty))
total_shared_clean=$((total_rss+shared_clean))
total_swap=$((total_swap+swap))
total_pagetablesize=$((total_pagetablesize+pagetablesize))
if [ "$1" = "-a" ] ;then
echo $PID $meminfoline "$pagetablesize" "$cmdline"|awk /
'{
printf("%9d %10d %10d %10d %10d %10d %10d %10d %-26s/n",$1,$2,$3,$4,$5,$6,$7,$8,$9);
}'
fi
done <$TMPFILE
/bin/rm $TMPFILE
echo $total_rss $total_private_clean $total_private_dirty $total_shared_dirty $total_shared_clean $total_swap $total_pagetablesize |awk /
'{
printf(" ALL %10d %10d %10d %10d %10d %10d %10d/n",$1,$2,$3,$4,$5,$6,$7);
}'
}
function print_usage()
{
echo "usage:"
echo " pm.sh -a : display all process memory info"
echo " pm.sh -s : display total memory info"
echo " pm.sh -p <pid> : display pid memory info"
}
total_rss=0
total_private_clean=0
total_private_dirty=0
total_shared_dirty=0
total_shared_clean=0
total_swap=0
total_pagetablesize=0
if [ $# -lt 1 ];then
print_usage;
exit 1
fi
if [ "$1" = "-a" ];then
show_all_process_mem $1;
exit 0
fi
if [ "$1" = "-s" ];then
show_all_process_mem $1;
exit 0
fi
if [ "$1" = "-p" ];then
if [ $# -ne 2 ];then
print_usage;
exit 1
fi
meminfoline=`getpidmem $2`
cmdline=`ps -o command -p $2 |tail -1 |cut -b 1-26`
pagetablesize=`cat /proc/$2/status |grep "VmPTE:"|awk '{print $2}'`
if [ "$pagetablesize" = "" ]; then
pagetablesize=0
fi
echo " pid RSS(KB) PRIV_DIRTY PRIV_CLEAN SHR_DIRTY SHR_CLEAN SWAP PAGETABLE CMDLINE"










