nombre de processus de travail nginx


23

Je configure nginx pour servir une installation Drupal, et je semble trouver des informations contradictoires sur le paramètre des processus de travail nginx. Un site dit qu'il vous en faut deux, un dit qu'il vous en faut cinq, un dit un par processeur ...

Comment dois-je choisir le nombre de processus de travail nginx? Si cela fait une différence, c'est une machine virtuelle invitée sur un cluster VMWare, et je lui ai donné un processeur virtuel.

Réponses:


16

Nginx contrairement à Apache et aux autres processus par serveur Web de connexion. Il utilise un processus maître pour démarrer et surveiller un petit nombre de processus de travail qui gèrent réellement les connexions. Ma recommandation est de commencer avec le nombre de travailleurs par défaut, qui est 1.

worker_processes  1;

Vous n'aurez besoin de l'augmenter que si vous constatez que le travailleur nginx passe trop de temps bloqué sur les E / S. Cela ne se fera pas tant qu'il ne servira pas plusieurs centaines de demandes par seconde.

Vous pouvez également trouver ces paramètres utiles.

worker_rlimit_nofile 8192;

events {
    worker_connections  2048;
    use epoll;
}

1
Pouvez-vous décrire à quoi sert "worker_rlimit_nofile 8192"?
The Pixel Developer

wiki.nginx.org/NginxHttpMainModule#worker_rlimit_nofile . Cela demande au travailleur d'augmenter son ulimit.
Dave Cheney

15

Sur les systèmes SMP, au moins les processus de travail nCPU doivent être démarrés: sur quatre cœurs - quatre, etc. Cela suffit pour le proxy.

Si vous allez servir certains sites avec beaucoup de contenu statique, il serait préférable d'ajouter plus de travailleurs - un par disque.

Si votre sous-système de disques est trop pauvre ou trop chargé, les processus de travail nginx peuvent se bloquer sur les opérations d'E / S et ne peuvent pas répondre à d'autres demandes. Dans ce cas, vous devez augmenter le nombre de processus de travail à une valeur appropriée (des dizaines) ou ajouter de la mémoire pour le cache disque.

Examinez l'impression "ps ax": les travailleurs qui sont dans l'état "D" sont verrouillés. Augmentez jusqu'à ce qu'au moins les processus de travail nCPU ne soient pas bloqués.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.