Maison > Article > Opération et maintenance > Comment définir le nombre de processus du serveur Nginx et comment utiliser le processeur multicœur
fichier de configuration nginx nginx.conf
Vous devez d'abord trouver le fichier de configuration nginx nginx.conf pour effectuer les opérations suivantes, la configuration par défaut dans le lnmp package d'installation en un clic , nginx.conf est stocké dans
/usr/local/nginx/conf/nginx.conf
Quant à l'installation de nginx dans d'autres environnements, vous pouvez utiliser
find / -name nginx.conf
pour recherchez le chemin de stockage du fichier de configuration.
paramètre du numéro de processus Nginx Worker_processes
Le document de configuration Nginx nginx.conf peut définir Worker_processes pour modifier le nombre de processus Nginx, selon cet article Le nombre de questions-réponses des processus de travail nginx montre qu'il est recommandé que le nombre de processus nginx work_processes soit défini sur 1 car :
Mais notre objectif est d'allouer différents processus work_processes à exécuter sur des processeurs sur différents cœurs, donc avec par exemple, la configuration 512 de mon fournisseur vps actuel linode, le serveur poule a 8 processeurs logiques, mais en tant qu'utilisateur, je n'obtiens que 4 processeurs logiques, donc ici je l'ai configuré pour exécuter 3 processus worker_processes, la raison est que par défaut Suivant , d'autres programmes s'exécuteront sur le premier processeur logique (cpu0). Afin de ne pas affecter les autres programmes, j'attribuerai à ces trois processus l'exécution sur les trois autres processeurs logiques (cpu1, cpu2, cpu3) : # 🎜🎜#
worker_processes 3;#. 🎜🎜# De manière générale, si vous disposez de plusieurs CPU logiques, il convient de définir plusieurs worker_processes. Cependant, s'il y a plus de 8 worker_processes, cela n'a pas beaucoup de sens. La raison a été mentionnée dans le paragraphe ci-dessus en anglais.
Vous pouvez utiliser cette commande pour vérifier la situation actuelle du CPU :
cat /proc/cpuinfo
cat /proc/cpuinfo |grep "processor"|wc -l
nginx worker_cpu_affinity settings
Selon les informations sur le wiki nginx :
worker_cpu_affinity n'est pas activé par défaut, selon le exemple Nous pouvons voir que 0001 0010 0100 1000 représente respectivement le 1er, le 2ème, le 3ème et le 4ème processeurs logiques, nous pouvons donc définir 0010 0100 1000 pour lier les 3 processus aux 2ème, 3ème et 4ème processeurs logiques respectivement : #🎜. 🎜#worker_processes 3; worker_cpu_affinity 0010 0100 1000;En même temps, nous pouvons également voir dans l'exemple que worker_cpu_affinity peut lier le même processus à 2 processeurs logiques :
worker_processes 2; worker_cpu_affinity 0101 1010;#🎜 🎜#0101 est sur les 1er et 3ème CPU logiques, et 1010 sur les 2ème et 4ème CPU logiques. Allocation du processus nginx à l'activation et aux tests de la configuration du processeur multicœur
Enregistrez le fichier nginx.conf et rechargez le fichier de configuration nginx :
/usr/local/nginx/sbin/nginx -s reload
Vous pouvez tester un php qui nécessite une page de requête mysql, vous pouvez également tester une image ou une page statique.
Activer l'utilisation multicœur du processeur
(1) Combien de cœurs un processeur possède, combien de chiffres y a-t-il are, 1 signifie que le noyau est activé, 0 signifie que le noyau est désactivé (2) Un maximum de 8 worker_processes peuvent être ouverts si plus de 8 Workers sont activés, les performances ne seront pas améliorées et la stabilité le sera. devenir inférieur, donc 8 processus suffisent# 🎜🎜#
Exemple de démonstration
Cpu à deux cœurs, démarrez deux processus
worker_processes 2; worker_cpu_affinity 01 10;01 signifie le premier le cœur du processeur est activé, 10 signifie que le deuxième cœur du processeur est activé
worker_cpu_affinity 01 10 ; signifie que deux processus sont activés. Le premier processus correspond au premier cœur du processeur et le deuxième processus correspond au deuxième cœur du processeur#🎜🎜. ## 🎜🎜#CPU à deux cœurs, ouvrez huit processus worker_processes 8;
worker_cpu_affinity 01 10 01 10 01 10 01 10;
8 processus sont ouverts, ce qui correspond à l'ouverture de 2 cœurs respectivement
worker_processes 8; worker_cpu_affinity 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001;
Cpu à 8 cœurs, démarrer 2 processus
worker_processes 2; worker_cpu_affinity 10101010 01010101;# 🎜🎜#10101010 signifie démarrer les 2ème, 4ème, 6ème et 8ème cœurs, 01010101 signifie démarrer les 1er, 3ème, 5ème et 7ème cœurs
2 processus correspondent à 8 cœurs
Redémarrer nginx#🎜 🎜#Une fois la configuration terminée, vous devez redémarrer le service nginx
/etc/init.d/nginx restart
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!