Les demandes ne mettent jamais dans la file d'attente après pm.max_children de Nginx et PHP-FPM
Dès que la piscine atteint pm.max_children, Nginx commence un délai d'attente lorsque vous essayez d'envoyer de nouvelles demandes à PHP-FPM. "max listen queue" Toujours égal 0 Sur la page php-status.
PHP-FPM 5.5.16
Nginx 1.6.1
Voici un exemple de piscine php-fpm:
PHP-FPM 5.5.16
Nginx 1.6.1
Voici un exemple de piscine php-fpm:
[example]
catch_workers_output = no
; Configure listener
listen = /var/run/php-fpm/example.sock
listen.backlog = 65535
listen.owner = nginx
listen.group = nginx
; Unix user/group of processes
user = nginx
group = nginx
; Choose how the process manager will control the number of child processes.
pm = ondemand
pm.max_children = 10
pm.max_requests = 200
pm.process_idle_timeout = 30s
pm.status_path = /status
; Pass environment variables
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
; Host specific php ini settings here
php_admin_flag[log_errors] = on
php_admin_value[open_basedir] = /tmp:/var/www/apc:/var/www/wordpress/example
php_admin_value[error_log] = /var/log/php-fpm/example.log
Aucun résultat connexe trouvé
Invité:
Pour répondre aux questions, connectez-vous ou registre
1 réponses
Hannah
Confirmation de:
http://php.net/manual/en/insta ... n.php
:
Nombre de filiales ... qui sera créé quand pm Construit à dynamique.
Cette option définit la limite sur le nombre de demandes simultanées qui seront desservies.
Toutefois, chaque demande doit être traitée assez rapidement afin que le processus soit libéré pour la prochaine requête. Sinon,
Probablement signaler «502 Bad Gateway», Dès que plus aucune demande ne peut traiter.
Encore une fois, vérifiez la valeur définie dans
Configuration pour
. Il détermine la longueur de la file d'attente (
https://myjeeva.com/php-fpm-configuration-101.html
):
Argument backlog Détermine la longueur maximale de la file d'attente.
Cependant, cette valeur est limitée par le système de base. Voir:
Autant que je sache, il n'est pas possible de faire la queue de la requête à l'ascension. (
), Si cela provoque une erreur. Néanmoins, vous pouvez spécifier nginx Passer à un autre processus en cas d'erreur. Cela peut provoquer, par exemple, redémarrer sur le côté du client.
Si ce n'est pas le cas
/
, alors la question réelle, cependant, c'est pourquoi les demandes bloquent
Processus pendant si longtemps.