In Linux, how to tell how much memory processes are using?

前端 未结 13 1168
情歌与酒
情歌与酒 2020-11-30 17:36

I think I may have a memory leak in my LAMP application (memory gets used up, swap starts getting used, etc.). If I could see how much memory the various processes are using

13条回答
  •  情书的邮戳
    2020-11-30 18:07

    Thanks. I used this to create this simple bash script that can be used to watch a process and its memory usage:

    $ watch watchmypid.sh

    #!/bin/bash
    #
    
    PROCESSNAME=changethistoyourprocessname
    MYPID=`pidof $PROCESSNAME`
    
    echo "=======";
    echo PID:$MYPID
    echo "--------"
    Rss=`echo 0 $(cat /proc/$MYPID/smaps  | grep Rss | awk '{print $2}' | sed 's#^#+#') | bc;`
    Shared=`echo 0 $(cat /proc/$MYPID/smaps  | grep Shared | awk '{print $2}' | sed 's#^#+#') | bc;`
    Private=`echo 0 $(cat /proc/$MYPID/smaps  | grep Private | awk '{print $2}' | sed 's#^#+#') | bc;`
    Swap=`echo 0 $(cat /proc/$MYPID/smaps  | grep Swap | awk '{print $2}' | sed 's#^#+#') | bc;`
    Pss=`echo 0 $(cat /proc/$MYPID/smaps  | grep Pss | awk '{print $2}' | sed 's#^#+#') | bc;`
    
    Mem=`echo "$Rss + $Shared + $Private + $Swap + $Pss"|bc -l`
    
    echo "Rss     " $Rss
    echo "Shared  " $Shared
    echo "Private " $Private
    echo "Swap    " $Swap
    echo "Pss     " $Pss
    echo "=================";
    echo "Mem     " $Mem
    echo "=================";
    

提交回复
热议问题