4 votes

Ne peut pas optimiser php5-fpm pour fonctionner sans erreurs

J'ai installé ngix + php5-fpm. Je suis satisfait mais je ne peux pas optimiser php5-fpm pour qu'il fonctionne sans erreur. Chaque erreur corrigée crée une erreur différente.

Au début, j'avais les réglages par défaut qui provoquaient beaucoup d'erreurs :

[04-Jun-2012 03:30:06] AVERTISSEMENT: [pool www] le serveur a atteint le paramètre pm.max_children (5), envisagez de l'augmenter

J'ai augmenté tous les nombres :

pm.max_children = 15
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 5
;pm.max_requests = 500

Cela a provoqué une erreur différente :

[28-Feb-2013 07:45:06] AVERTISSEMENT: [pool www] semble occupé (vous devriez peut-être augmenter pm.start_servers, ou pm.min/max_spare_servers), génération de 8 enfants, il y a 18 inactifs, et 28 enfants au total

J'ai de nouveau augmenté tous les nombres :

pm.max_children = 70
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 35
;pm.max_requests = 500

Cela a provoqué le remplissage du fichier journal avec ceci :

[28-Feb-2013 13:21:55] NOTICE: [pool www] l'enfant 21868 a quitté avec le code 0 après 4171.293476 secondes depuis le démarrage
[28-Feb-2013 13:21:55] NOTICE: [pool www] l'enfant 23962 a démarré

J'ai décommenté :

pm.max_requests = 500

J'ai eu les mêmes erreurs, mais moins fréquemment - toutes les 5 minutes :

[28-Feb-2013 13:21:55] NOTICE: [pool www] l'enfant 21868 a quitté avec le code 0 après 4171.293476 secondes depuis le démarrage
[28-Feb-2013 13:21:55] NOTICE: [pool www] l'enfant 23962 a démarré

J'ai augmenté de nouveau :

pm.max_requests = 1000

Maintenant j'ai cette erreur 2-3 fois par heure mais elle persiste encore.

J'augmenterais ce nombre à nouveau mais je sens que mon serveur (sites web) fonctionne un peu plus lentement que les sites web hébergés sur un autre serveur avec les réglages : pm.max_children = 15,pm.start_servers = 5, pm.min_spare_servers = 3, pm.max_spare_servers = 5. (probablement juste un problème de réseau, je ne sais pas).

J'ai cherché sur Google et ce site web et je sais comment calculer le pm.max_children (cela dépend de la RAM). Mais je ne trouve aucune information sur comment calculer :

pm.start_servers
pm.min_spare_servers
pm.max_spare_servers
pm.max_requests

Est-ce que quelqu'un peut m'aider ?

uptime
 13:55:39 en marche depuis 16 heures et 40 minutes,  2 utilisateurs,  charge moyenne: 0.13, 0.14, 0.16

free -m
             total       utilisé       libre     partagé    tampons     mis en cache
Mem:         24101       3783      20318          0        151       3039
-/+ tampons/cache:        592      23509
Swap:         7811          0       7811

Je n'ai rien changé dans les fichiers de configuration de nginx.

0 votes

Il semble que vous ayez effectué toutes les étapes correctes pour régler PHP-FPM. Quel problème rencontrez-vous?

0 votes

Le problème se trouve dans les lignes suivantes du fichier php5-fpm.log. Est-ce normal? [28-Fév-2013 13:21:55] NOTICE: [pool www] child 21868 exited with code 0 after 4171.293476 seconds from start [28-Fév-2013 13:21:55] NOTICE: [pool www] child 23962 started

0 votes

C'est normal étant donné que vous avez défini pm.max_requests.

2voto

Comme il est indiqué dans le journal [NOTICE] : il s'agit d'informations et pas d'une erreur. Ceux-ci sont marqués [ERROR].

En bref : il n'y a rien à craindre. C'est comme si votre enfant vous disait qu'il avait éteint la lumière dans la cuisine.

Si cela indique [WARNING], c'est quelque chose dont vous devriez vous occuper, comme vous l'avez fait dans votre première réponse en augmentant les seuils.

0voto

Sibin Grasic Points 466

Basculez php-fpm en mode dynamique. De cette façon, php-fpm décide automatiquement quand créer de nouveaux processus enfants. C'est indispensable si vous utilisez n'importe quel type de caches d'opcodes, car les processus enfants tués de force augmentent la fragmentation dans PHP-APC

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