Consommation mémoire des process d’un serveur LAMP

Consommation mémoire des process d'un serveur LAMPPour calculer la mémoire d’un process sous Linux, vous avez différents utilitaires.  Et, à chaque fois, j’ai cette sensation qu’aucun d’entre eux ne mesure la même chose. Du coup, je vais me rapatrier sur cette vieille bonne commande ps.

Tout d’abord, je redirige le contenu de la commande ps vers un fichier temporaire, afin de disposer de l’image de la mémoire du système à un instant donné.

ps aux > /tmp/tmpps

Pour les processus mysqld, httpd et php-fpm, j’obtiens une consommation mémoire respective de 252 Mo, 85 Mo et 842 Mo, après avoir rechargé/redémarré les trois processus principaux. La commande awk additionne les valeurs de la mémoire RSS  (Resident Set Size) affichée en 6e colonne :

[root@srv2 /]# cat /tmp/tmpps|grep -iP "mysqld"|awk '{sum+=$6} END {print sum/1024}'
252.102
[root@srv2 /]# cat /tmp/tmpps|grep -iP "httpd"|awk '{sum+=$6} END {print sum/1024}'
85.6055
[root@srv2 /]# cat /tmp/tmpps|grep -iP "php-fpm"|awk '{sum+=$6} END {print sum/1024}'
842.117

Et dire que certains critiquent Apache pour sa consommation mémoire excessive ! Il y a de quoi faire pipi par terre et se rouler dedans, vous ne croyez pas ?

Si vous êtes en php-fpm, vous pouvez du coup faire une analyse par site :

[root@srv2 /]# cat /tmp/tmpps|grep -iP "php-fpm: pool dsfc"|awk '{sum+=$6} END {print sum/1024}'
247.934

J’en ai profité pour nettoyer le contenu de la mémoire partagée. C’est bientôt le printemps !

sync; echo 3 > /proc/sys/vm/drop_caches
 

LAMP / , , , ,