Nous cherchons un moyen de faire en sorte qu'APC ne crée qu'un seul cache par compte/site. Cela peut être fait avec Fastcgi (dernière mise à jour 2006 ) mais avec Fastcgid APC devra créer plusieurs caches pour plusieurs processus exécutés par le même compte.
Pour contourner ce problème, nous nous sommes intéressés à PHP-FPM.
Le gestionnaire de processus PHP permet à plusieurs processus PHP de partager un seul cache APC.
Mais d'après ce que j'ai lu (j'espère me tromper), même si vous créez un pool par processus, tous les sites de tous les pools partageront le même cache APC. Cela nous ramène au même problème qu'avec Memcached partagé : ce n'est pas sûr !
Sur le site de php-fpm, j'ai lu que vous pouvez chrooter les pools de php-fpm et définir un UID et un GID spécifiques par pool si c'est le cas, APC ne devrait-il pas utiliser cet utilisateur et ne pas avoir accès au cache des autres pools ?
Un article ici (en 2011) suggère que vous devriez exécuter un processus par pool en créant plusieurs lanceurs sur différents ports et différents fichiers de configuration avec un pool par fichier de configuration :
http://groups.drupal.org/node/198168
Est-ce toujours nécessaire ?
Si oui, quel serait l'impact de l'exécution de 800 processus de php-fpm ? S'agirait-il principalement de la mémoire ? Si oui, comment puis-je déterminer l'impact sur la mémoire ?
Je suppose qu'il serait préférable d'exécuter 800 fois le php-fpm plutôt que d'avoir des comptes créant plusieurs caches APC pour un seul site ?
Si en moyenne un compte crée un cache de 50Mo et crée 3 caches par compte cela fait 150Mo par compte ce qui fait 120Go .
Cependant, si chaque compte n'utilise en moyenne que 50 Mo, cela fait 40 Go.
Nous aurons au moins 128 Go de RAM sur notre prochain serveur, donc 40 Go est acceptable si l'exécution de 800 x PHP-FPM ne crée pas une surcharge de plus de 20 Go !
Selon vous, PHP-FPM est-il le meilleur moyen de fournir un cache APC sécurisé sur un hébergement mutualisé avec un serveur disposant d'une quantité décente de mémoire ?
Ou devrais-je envisager un autre système ?
Merci !