Maison  >  Article  >  Opération et maintenance  >  Comment définir le nombre de processus du serveur Nginx et comment utiliser le processeur multicœur

Comment définir le nombre de processus du serveur Nginx et comment utiliser le processeur multicœur

WBOY
WBOYavant
2023-05-12 09:46:052095parcourir

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

Ou afficher directement le nombre de CPU logiques :

#🎜🎜 #
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

at Run ab sur un autre hôte avec Apache installé pour tester :

ab -n 20000 -k http://www.1990y.com/p.php

Vous pouvez tester un php qui nécessite une page de requête mysql, vous pouvez également tester une image ou une page statique.

Sur le serveur testé, vous pouvez utiliser top pour visualiser la situation actuelle du serveur, puis appuyer sur 1 pour afficher l'utilisation de chaque CPU logique.



Activer l'utilisation multicœur du processeur

Paramètres des règles

(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

CPU à 8 cœurs, ouvrez 8 processus

  worker_processes 8; 
  worker_cpu_affinity 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001;

00000001 signifie ouvrir le premier cœur du processeur, 00000010 signifie ouvrir le deuxième cœur du processeur, et ainsi de suite

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer