Frage Anzahl der Nginx-Worker-Prozesse


Ich richte nginx ein, um eine Drupal-Installation zu starten, und ich finde, dass widersprüchliche Informationen in der Einstellung von nginx worker processes gefunden werden. Eine Seite sagt, du brauchst zwei, eine sagt, du brauchst fünf, eine sagt eine pro Prozessor ...

Wie sollte ich die Anzahl der Nginx-Worker-Prozesse auswählen? Wenn es einen Unterschied macht, ist es eine Gast-VM in einem VMWare-Cluster, und ich habe ihm einen virtuellen Prozessor gegeben.


22
2018-05-08 13:46


Ursprung




Antworten:


Nginx im Gegensatz zu Apache und anderen pro Verbindung Webservers. Es verwendet einen Hauptprozess, um eine kleine Anzahl von Worker-Prozessen zu starten und zu überwachen, die die Verbindungen tatsächlich verarbeiten. Meine Empfehlung ist, mit der Standardanzahl der Worker zu beginnen, die 1 ist.

worker_processes  1;

Sie müssen dies nur erhöhen, wenn Sie feststellen, dass der Nginx-Mitarbeiter zu viel Zeit für IO blockiert. Dies wird nicht, bis es viele Hunderte von Anfragen pro Sekunde dient.

Sie können diese Einstellungen auch nützlich finden.

worker_rlimit_nofile 8192;

events {
    worker_connections  2048;
    use epoll;
}

16
2018-05-09 14:46



Können Sie beschreiben, wofür "worker_rlimit_nofile 8192" verwendet wird? - The Pixel Developer
wiki.ninx.org/NginxHttpMainModule#worker_rlimit_nofile. Dies weist den Arbeiter an, sein ulimit zu erhöhen. - Dave Cheney


Auf SMP-Systemen sollten mindestens nCPU-Worker-Prozesse gestartet werden: auf Quad-Core - vier usw. Das ist wichtig für das Proxying.

Wenn Sie einige Websites mit viel statischem Inhalt bedienen möchten, sollten Sie besser mehr Mitarbeiter hinzufügen - einen pro Datenträger.

Wenn das Plattensubsystem zu schwach ist oder zu hoch lädt, können die nginx Worker-Prozesse bei E / A-Operationen gesperrt werden und andere Anforderungen nicht erfüllen. In diesem Fall sollten Sie die Anzahl der Worker-Prozesse auf einen geeigneten Wert (z. B. Zehner) erhöhen oder Speicherplatz für den Festplattencache hinzufügen.

Sehen Sie sich den Ausdruck "ps ax" an: Arbeiter im Zustand "D" sind gesperrt. Erhöhen Sie, bis mindestens nCPU Worker-Prozesse nicht blockiert sind.


15
2018-05-27 12:47