3 votes

PHP5-FPM pm.max_children affecte la RAM ou le CPU+RAM?

Récemment hérité d'un serveur Nginx+PHP5-FPM, et j'apprends et essaie d'optimiser les paramètres de PHP5-FPM.

Info sur le serveur:

4 CPUs (8 threads)
7.5 GiB RAM

Info sur PHP5-FPM:

pm.max_children = 5
pm.min_spare_servers = 1
pm.max_spare_servers = 3
;pm.process_idle_time = 10s;
;pm.max_requests = 500

(Je vais décommenter la ligne max_requests, car cela semble être une recommandation à suivre.)

Lorsque le site web est sous charge, chaque processus PHP5-FPM a une utilisation très élevée du CPU mais je n'ai pas encore vu un processus dépasser 1% d'utilisation de la RAM.

Partout où je regarde (par exemple ici et ici), on parle uniquement d'augmentations de pm.max_children limitées par la RAM, et ne mentionne pas l'utilisation du CPU.

Dans mon cas, augmenter pm.max_children augmenterait-il ou diminuerait-il les performances de mon site web, étant donné qu'il est plus lié au CPU qu'à la RAM? En d'autres termes, à mesure que pm.max_children augmente, la RAM est-elle la seule considération ou le CPU est-il également affecté?

[Édition] Pas un doublon: La question se résume essentiellement à la dernière phrase, qui n' demande pas de conseils sur la planification de la capacité; elle demande si l'utilisation du CPU est une considération dans le réglage de pm.max_children ou si c'est uniquement la RAM qui est augmentée.

0voto

drookie Points 7850

De mon point de vue, la limite de vos enfants est beaucoup trop basse. Si vous avez assez de mémoire (et chaque enfant consomme généralement une petite quantité seulement), le nombre d'enfants devrait être réglé au moins à cores*2. Je recommande de régler max-children à 32.

0voto

Marki555 Points 1448

Il dépend de ce que vos scripts PHP font. Mais 5 est un nombre vraiment bas pour les processus PHP. Habituellement, le processus PHP ouvrira une connexion à MySQL (prend du temps), attendra que MySQL traite la requête (prend du temps), il n'utilisera donc pas le CPU tout le temps et avec seulement 5 processus, le CPU peut être inactif à certains moments, mais il n'y aura pas d'autre processus PHP pour l'utiliser. Vous pouvez donc augmenter en toute sécurité la limite à au moins 20-30 (ou plus, en fonction du nombre de req/s que vous recevez).

En ce qui concerne la question sur l'utilisation du CPU. Avoir plus de processus PHP actifs en même temps n'augmentera pas l'utilisation du CPU. Toute la puissance du CPU que vous avez disponible sera divisée entre les processus en cours d'exécution.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X