Vérifier la RAM que consomme un process sous Linux avec pmap


Des fois on a son serveur qui swap à mort, tout ralentie, votre site vaut plus rien, vous êtes désespéré, c’est la faute à tout le monde sauf vous, etc… Sauf que vous avez fait un script qui check rien du tout, qui lance des process externes qui buguent 2 fois sur 3, votre script tout pourri a alors bouffé toute la RAM, ne laissant rien aux autres process, le système swap à mort, c’est le drame…

Avec pmap vous pouvez connaitre la mémoire utilisée par un process, très pratique pour dénicher qui consomme et remonter à la source.

Un petit ps aux pour connaitre l’id de votre process à espionner ou à défaut un htop:

ps aux | grep redis
redis    23777  0.1  6.8  72480 70708 ?        Ss   01:15   0:03 /usr/sbin/redis-server /etc/redis.conf

Ensuite on passe l’ID à pmap:

pmap 23777
23777:   /usr/sbin/redis-server /etc/redis.conf
0089a000    108K r-x--  /lib/ld-2.5.so
...
bf9d5000     84K rw---    [ stack ]
 total    72476K

Redis occupe 72Mo de RAM. Dans mon cas c’est normal, celà correspond à mes valeurs de config.

3 thoughts on “Vérifier la RAM que consomme un process sous Linux avec pmap

  • Sam

    Hyper pratique. Si vous êtes une grosse feignasse comme moi, faites un one liner: pmap $(ps aux | grep redis-server | grep -v grep | awk ‘{ print $2 }’)

    Ou alors une petite fonction dans le .bashrc:

    function get_memory() {
    pmap $(ps aux | grep $1 | grep -v grep | awk ‘{ print $2 }’)
    }

  • JoHn

    Marrant, on retrouve exactement le nombre affiché avec “ps -ef” ..

    ps -ef | grep ipdb

    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

    john 22534 6.7 0.6 149780 27120 pts/29 Sl+ 11:00 0:00 /usr/bin/python /usr/local/bin/ipdb p65

    pmap 22534|tail -1

    total 149780K

    ..C’est pas dingue, ça ?..

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.