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.

ceejayoz
la source

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;
}
Dave Cheney
la source
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.

Vadim
la source