Mémoire partagée (shared memory) sur un serveur LAMP
A l’occasion de la réinstallation complète d’un serveur LAMP (Linux Apache MySQL PHP), j’ai tenu à refaire le point sur le paramétrage de la Shared Memory sur un système Linux. Cette mémoire est utilisée dans le cadre d’échanges inter-processus (IPC Inter-Process Communication). Très utilisée par PostgreSQL ou par Oracle, il s’avère que MySQL ne l’utilise pas. Apache ne s’en sert pas non plus.
Pour lister le contenu des segments de mémoire partagée, tapez la commande ipcs -m.
Configurer la taille de la mémoire partagée
La mémoire partagée est dynamique. Pour en déterminer la limite, vous devez préalablement récupérer respectivement la taille de vos pages ainsi que la valeur de la mémoire totale exprimée en bytes :
getconf PAGE_SIZE
free -b
Editez alors le fichier /etc/sysctl.conf et décommentez la directive kernel.shmall. Pour un système doté de 2GB, si vous voulez fixer votre mémoire partagée à 1GB, vous devrez indiquer :
#=(1024*1024*1024)/4096 kernel.shmall=262144
Vous devez ensuite recharger les paramètres du noyau en exécutant la commande sysctl -p. Vous pouvez vérifier ces paramètres en tapant ipcs -l.
Certaines applications écrites en PHP peuvent utiliser la Shared Memory ! Tout cela n’a rien à voir avec Memcache.
Vider la mémoire partagée
Après un crash, il peut être utile de vider la mémoire partagée à l’aide de la commande ipcrm.
4 votes, 4.75 avg. rating (93% score)