Nous utilisons souvent php-fpm, mais tout le monde ne sait pas que fpm a trois modes. Aujourd'hui, Xiaonian vous fera comprendre les trois modes de fpm. Vous pouvez vous y référer si vous en avez besoin.
; Choose how the process manager will control the number of child processes. ; Possible Values: ; static - a fixed number (pm.max_children) of child processes; ; dynamic - the number of child processes are set dynamically based on the ; following directives. With this process management, there will be ; always at least 1 children. ; pm.max_children - the maximum number of children that can ; be alive at the same time. ; pm.start_servers - the number of children created on startup. ; pm.min_spare_servers - the minimum number of children in 'idle' ; state (waiting to process). If the number ; of 'idle' processes is less than this ; number then some children will be created. ; pm.max_spare_servers - the maximum number of children in 'idle' ; state (waiting to process). If the number ; of 'idle' processes is greater than this ; number then some children will be killed. ; ondemand - no children are created at startup. Children will be forked when ; new requests will connect. The following parameter are used: ; pm.max_children - the maximum number of children that ; can be alive at the same time. ; pm.process_idle_timeout - The number of seconds after which ; an idle process will be killed. ; Note: This value is mandatory.
pm a trois modes : statique, dynamique et à la demande
Cette méthode est relativement simple au démarrage, le maître décompte le nombre correspondant de processus de travail en fonction de la configuration pm.max_children, c'est-à-dire que le nombre de processus de travail est fixe.
Gestion dynamique des processus, initialisez d'abord un certain nombre de travailleurs selon pm.start_servers au démarrage de fpm.
Pendant le fonctionnement, si le maître constate que le nombre de travailleurs inactifs est inférieur au nombre de pm.min_spare_servers configurés (indiquant qu'il y a trop de demandes et que les travailleurs ne peuvent pas les gérer), il bifurquera le processus de travail, mais le le nombre total de travailleurs ne peut pas dépasser pm.max_children.
Si le maître constate que le nombre de travailleurs inactifs dépasse pm.max_spare_servers (indiquant qu'il y a trop de travailleurs inactifs), il tuera certains travailleurs pour éviter d'occuper trop de ressources. Le maître contrôle le nombre de travailleurs via ces 4 valeurs. .
Cette méthode est généralement rarement utilisée. Le processus de travail n'est pas alloué au démarrage. Le processus maître est informé de la création du processus de travail après une demande. Le nombre total de travailleurs ne dépasse pas pm.max_children. le traitement est terminé, le processus de travail ne le fait pas. Il se terminera immédiatement, puis se terminera lorsque le temps d'inactivité dépassera pm.process_idle_timeout.
pm.max_children : Le nombre de processus php-fpm démarrés en mode statique.
pm.start_servers : Le nombre de processus php-fpm démarrant en mode dynamique.
pm.min_spare_servers : Nombre minimum de processus php-fpm en mode dynamique.
pm.max_spare_servers : Le nombre maximum de processus php-fpm en mode dynamique.
php-fpm reload
php-fpm stop
kill SIGUSR1 php-fpm
Réutilisez le nouveau fichier et terminez la coupe du journal
kill SIGUSR2 php-fpm
Redémarrez le processus de travail et rechargez le fichier de configuration
Q1 : Après avoir démarré le processus php-fpm, tuez php -fpm numéro de processus maître, peut-il continuer à servir ? R : Non (tous les processus php-fpm sont arrêtés)
Q2 : Après avoir démarré le processus php-fpm, supprimez -9 le numéro de processus maître php-fpm, le service peut-il continuer ? R : Oui (seul le processus maître est tué, le processus de travail fonctionne toujours)
Q2 : Après avoir démarré le processus php-fpm, supprimez le numéro du processus de travail php-fpm, le service peut-il continuer ? R : Oui (une fois le processus de travail interrompu, un nouveau processus de travail démarre)
.Apprentissage recommandé :
php_module_startup()
Tutoriel vidéo php
fcgi_accept_request()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!