Maison  >  Article  >  développement back-end  >  Comment définir correctement le nombre de processus PHP

Comment définir correctement le nombre de processus PHP

PHPz
PHPzoriginal
2023-04-04 09:14:151282parcourir

Dans une application Web à fort trafic, afin de mieux gérer les demandes des utilisateurs, nous utilisons généralement le multi-processus pour traiter plusieurs demandes en même temps. En PHP, l'utilisation de FPM (FastCGI Process Manager) pour la gestion multi-processus est une méthode courante. Cependant, si notre serveur Web a trop de processus, cela imposera une trop grande charge aux ressources du serveur lors du traitement d'un trafic important, provoquant un crash du serveur. Il est donc très important de configurer correctement le gestionnaire de processus PHP. Cet article explique comment définir correctement le nombre de processus PHP.

  1. Comprendre le PHP Process Manager

Avant de configurer le nombre de processus PHP, nous devons comprendre le PHP Process Manager et son fonctionnement.

FPM est un gestionnaire PHP FastCGI qui peut gérer tous les processus PHP et fournit plusieurs pools de processus. Chaque pool de processus possède un nombre spécifique de processus PHP, qui peuvent être spécifiés ou calculés en fonction du processeur et de la mémoire du serveur.

Lorsqu'une demande de fichier PHP est effectuée, Nginx ou Apache transmettra la demande au gestionnaire FPM, qui sélectionnera l'un des processus PHP en fonction de l'algorithme d'équilibrage de charge. Le processus PHP exécute le code et renvoie la réponse à Nginx ou Apache, qui est finalement renvoyée au client.

  1. Choisissez le nombre de processus PHP

Il est important de sélectionner le nombre de processus PHP en fonction de la situation réelle. Si le nombre de processus est trop petit, il risque de ne pas être en mesure de supporter la charge d'un trafic élevé ; si le nombre de processus est trop important, les ressources du serveur seront gaspillées.

Nous pouvons estimer le nombre de processus PHP requis par le serveur grâce à la formule suivante :

max_children = ((RAM totale - Mémoire utilisée par d'autres processus) / Mémoire consommée par un processus enfant PHP)

Parmi eux,

max_children est le nombre maximum de processus enfants PHP.
La RAM totale est la quantité totale de mémoire sur le serveur.
La mémoire utilisée par d'autres processus est la quantité de mémoire occupée par d'autres processus, qui peut être visualisée à l'aide de la commande top ou ps.
La mémoire consommée par un processus enfant PHP correspond à l'utilisation de la mémoire de chaque processus PHP et peut être estimée à l'aide de la commande suivante.

php -r 'echo memory_get_usage(true);'

Cela renverra un entier en octets. Pour convertir cela en Mo, divisez ce nombre par 1024 x 1024 pour obtenir la quantité de mémoire consommée par chaque processus PHP.

  1. Ajuster le nombre de processus PHP

Nous pouvons spécifier le nombre de processus dans le fichier php.ini et ajuster ces nombres en fonction de la disponibilité des ressources du serveur.

Dans le fichier php.ini, vous pouvez trouver les paramètres suivants :

pm =dynamic
pm.max_children = 20
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

Ce sont les paramètres qui affectent les paramètres clés du processus PHP. pm représente le gestionnaire de processus (le gestionnaire de processus dynamique est utilisé ici), pm.max_children représente le nombre maximum de processus enfants, pm.start_servers représente le nombre de processus enfants lorsqu'il est activé, pm.min_spare_servers représente le nombre de processus enfants réservés, pm .max_spare_servers représente le nombre maximum de processus inactifs pouvant être créés.

Après l'estimation selon la formule de la deuxième étape, définissez pm.max_children sur la valeur correspondante et ajustez les autres paramètres en fonction de la disponibilité des ressources du serveur.

  1. Surveiller et ajuster le nombre de processus

Une fois le nombre de processus configuré et défini, nous devons les surveiller régulièrement pour nous assurer qu'ils fonctionnent correctement dans des conditions de charge complète ou légère.

Vous pouvez utiliser la commande top ou htop pour surveiller la santé du serveur. Ces outils afficheront tous les processus sur le serveur et leur utilisation des ressources.

Si nous constatons que le nombre de processus est trop ou pas assez important, nous pouvons ajuster le nombre de processus en fonction de la situation réelle et observer si leurs conditions de fonctionnement s'améliorent.

  1. Résumé

Dans les applications Web à forte charge, il est très important de configurer correctement le nombre de processus PHP. Nous pouvons utiliser la méthode ci-dessus pour estimer le nombre de processus requis par le serveur et déterminer la meilleure stratégie de réglage des paramètres. La surveillance régulière du nombre de processus PHP est un autre facteur clé pour garantir que votre application fonctionne de manière stable sous des charges de trafic élevées.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Que signifie le SDK PHP ?Article suivant:Que signifie le SDK PHP ?