Ça roxe mais ça merdoie

Nouveau serveur opérationnel depuis hier — grâce à l’ami biou qui s’est tapé tout le boulot —, avec une config qui roxe, MariaDB pour les data (compatible MySQL), Apache 2.4[1] avec un PHP 7 en mode FastCGI.

Ça fonctionne tellement bien que du coup ça remet éventuellement en cause l’usage que je fais du cache statique ; ça sera à évaluer sur la durée.

Par contre y’a un léger problème avec les process PHP qui finissent par « étrangler » le serveur et ne plus répondre. Fuite mémoire, processes zombie, ou que sais-je encore ; ou peut-être simplement un réglage à revoir. Du coup je suis allé fouiller un peu le net à ce sujet et je suis tombé sur un truc intéressant à ce sujet.

En gros, plutôt que de régler (à peu près) comme ci-dessous (dans le fichier /etc/php/7.0/fpm/pool.d/www.conf), soit en mode dynamic, ce qui revient à lancer un certain nombre de process tout en réglant ces valeurs en fonction de la mémoire utilisée par chacun, celle disponible, … :

pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.process_idle_timeout = 10s;
pm.max_requests = 500

Il propose de régler sur le mode ondemand, de spécifier le nombre max de process en mesure de tourner à un moment donné, leur durée de vie et le nombre max de requêtes et d’oublier le reste :

pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 10s;
pm.max_requests = 200

Dans ce cas là, aucun process n’est lancé d’emblée, sauf un qui servira de « géniteur » à tous les autres — ils sont simplement cloné à partir de celui-ci, ce qui, je suppose augmente légèrement le temps de latence à la première connexion, mais uniquement quand c’est utile.

Reste à voir si ça va empêcher PHP de tomber toutes les 2, 3 ou 4 heures comme il le fait depuis hier ?

En attendant, ça dépote sur mes petits blogs \o/

Note

[1] Ce qui au passage va me permettre de tester HTTP/2 un de ces quatre.

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/13153

Haut de page