Maison >développement back-end >tutoriel php >pratique d'optimisation de la configuration php-fpm
Pratique d'optimisation de la configuration php-fpm
Introduction :
php-fpm (FastCGI Process Manager) est un mode de fonctionnement de PHP. Il gère les demandes des clients comme un processus indépendant, ce qui peut offrir de meilleures performances et stabilité. Cependant, si php-fpm n’est pas configuré correctement, ses avantages ne peuvent pas être maximisés. Cet article présente quelques techniques courantes d'optimisation de la configuration php-fpm et fournit des exemples de code correspondants.
Dans le fichier de configuration de php-fpm, vous pouvez définir certains paramètres liés à la gestion des processus pour optimiser les performances de php-fpm. Voici quelques paramètres de configuration couramment utilisés et leur exemple de code :
pm = dynamic ; 进程管理模式为动态模式,自动调整进程数量 pm.max_children = 50 ; 最大子进程数量为50个 pm.start_servers = 10 ; 启动时的子进程数量为10个 pm.min_spare_servers = 5 ; 最小空闲子进程数量为5个 pm.max_spare_servers = 20 ; 最大空闲子进程数量为20个
L'utilisation du mode dynamique peut ajuster automatiquement le nombre de processus en fonction du volume de requêtes, améliorant ainsi les performances de php-fpm. Dans le même temps, ajuster de manière appropriée le nombre de processus enfants au démarrage ainsi que le nombre minimum et maximum de processus enfants inactifs peut économiser les ressources du système tout en garantissant la réactivité.
Le processus php-fpm doit généralement accéder aux ressources du système d'exploitation, telles que la mémoire, le nombre de fichiers ouverts, etc. La définition correcte des paramètres de limite de ressources peut éviter les problèmes de performances causés par des ressources insuffisantes. Voici quelques paramètres de limite de ressources couramment utilisés et leurs exemples de codes :
pm.max_requests = 1000 ; 每个子进程处理的最大请求数量为1000个 rlimit_files = 1024 ; 进程可以同时打开的最大文件数为1024个 rlimit_core = unlimited ; 进程可以生成的core文件大小不限制
Le nombre de requêtes traitées par chaque processus enfant est un paramètre important. Une fois qu'un processus enfant a traité un certain nombre de requêtes, les ressources peuvent être libérées en redémarrant le processus enfant pour éviter les fuites de ressources et la fragmentation de la mémoire. Dans le même temps, ajuster de manière appropriée le nombre maximum de fichiers qu'un processus peut ouvrir en même temps et la limite de taille du fichier principal peut permettre à php-fpm de traiter davantage de requêtes.
Lorsque php-fpm traite les requêtes, vous pouvez définir certains paramètres pour optimiser les performances et la stabilité. Voici quelques paramètres de traitement des requêtes couramment utilisés et leurs exemples de codes :
request_terminate_timeout = 60s ; 请求处理超时时间为60秒 request_slowlog_timeout = 5s ; 记录慢日志的请求处理时间阈值为5秒 slowlog = /var/log/php-fpm.slow.log ; 慢日志记录的文件路径
La définition d'un délai d'expiration de traitement des requêtes approprié peut éviter que les requêtes à long terme ne bloquent le processus. Dans le même temps, vous pouvez définir le seuil de temps de traitement des requêtes pour la journalisation lente et spécifier le chemin du fichier pour la journalisation lente afin de localiser les requêtes lentes et les goulots d'étranglement des performances.
Conclusion :
En ajustant les paramètres de configuration de php-fpm, nous pouvons optimiser les performances et la stabilité de php-fpm. Un réglage raisonnable des paramètres de gestion des processus, des paramètres de limite de ressources et des paramètres de traitement des demandes peut améliorer la capacité de réponse aux demandes des clients et éviter le manque de ressources et les problèmes de performances. Vous trouverez ci-dessus quelques techniques d'optimisation courantes et des exemples de codes. J'espère qu'ils seront utiles à tout le monde.
Lien de référence :
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!