Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So legen Sie die Anzahl der Nginx-Serverprozesse fest und nutzen die Multi-Core-CPU

So legen Sie die Anzahl der Nginx-Serverprozesse fest und nutzen die Multi-Core-CPU

WBOY
WBOYnach vorne
2023-05-12 09:46:052080Durchsuche

nginx-Konfigurationsdatei nginx.conf

Zuerst müssen Sie die nginx-Konfigurationsdatei nginx.conf finden, um die folgenden Vorgänge ausführen zu können. In der Standardkonfiguration des lnmp-Ein-Klick-Installationspakets ist nginx.conf in

gespeichert
/usr/local/nginx/conf/nginx.conf

Was andere Umgebungen betrifft: Bei der Installation von Nginx können Sie

find / -name nginx.conf

verwenden, um den Speicherpfad der Konfigurationsdatei zu ermitteln.

nginx worker_processes-Prozessnummerneinstellung

nginx-Konfigurationsdokument nginx.conf kann worker_processes festlegen, um die Anzahl der nginx-Worker-Prozesse zu ändern. Gemäß dieser Frage und Antwort wird empfohlen, die Anzahl der nginx-worker_processes-Prozesse festzulegen zu 1, weil:

Aber unser Ziel ist es, verschiedene worker_processes-Prozesse zur Ausführung auf CPUs auf verschiedenen Kernen zuzuweisen. Wenn wir also die 512-Konfiguration meines aktuellen VPS-Anbieters Linode als Beispiel nehmen, hat der Server 8 logische CPUs, aber als Benutzer Ich habe nur 4 logische CPUs, daher habe ich hier die Ausführung von 3 worker_processes-Prozessen festgelegt. Der Grund dafür ist, dass andere Programme standardmäßig auf der ersten logischen CPU (CPU0) ausgeführt werden. Um andere Programme nicht zu beeinträchtigen, werde ich diese zuweisen Drei Prozesse sollen auf drei anderen logischen CPUs (cpu1, cpu2, cpu3) ausgeführt werden:

worker_processes 3;

Wenn Sie mehrere logische CPUs haben, ist es im Allgemeinen angemessen, mehrere worker_processes festzulegen, aber worker_processes über 8 macht nicht viel Sinn, z Der im obigen englischen Absatz genannte Grund.

Mit diesem Befehl können Sie die aktuelle CPU-Situation anzeigen:

cat /proc/cpuinfo

oder direkt die Anzahl der logischen CPUs anzeigen:

cat /proc/cpuinfo |grep "processor"|wc -l

nginx worker_cpu_affinity-Einstellung

Laut den Informationen im Nginx-Wiki:

worker_cpu_affinity Es ist standardmäßig nicht aktiviert. Gemäß dem Beispiel können wir sehen, dass 0001 0010 0100 1000 jeweils die 1., 2., 3. und 4. logische CPU darstellt, sodass wir 0010 0100 1000 festlegen können, um die 3 Prozesse an die 2. logische CPU zu binden bzw. , 3, 4 logische CPUs:

worker_processes 3;
worker_cpu_affinity 0010 0100 1000;

Gleichzeitig können wir anhand des Beispiels auch sehen, dass worker_cpu_affinity den gleichen Prozess an 2 logische CPUs binden kann:

worker_processes 2;
worker_cpu_affinity 0101 1010;

0101, also die 1. und 3 Auf der logischen CPU befindet sich 1010 auf der 2. und 4. logischen CPU.
nginx-Prozesszuordnung zum Aktivieren und Testen von Multi-Core-CPU-Einstellungen

Speichern Sie die Datei nginx.conf und laden Sie die Nginx-Konfigurationsdatei neu:

/usr/local/nginx/sbin/nginx -s reload

Führen Sie ab zum Testen auf einem anderen Host mit installiertem Apache aus:
ab -n 20000 -k http://www.1990y.com/p.php
Sie können eine PHP-Seite testen, die eine MySQL-Abfrage erfordert, oder Sie können ein statisches Bild oder eine statische Seite testen.

Auf dem getesteten Server können Sie mit top die aktuelle Serversituation anzeigen und dann 1 drücken, um die Auslastung jeder logischen CPU anzuzeigen.

CPU-Mehrkernauslastung aktivieren

Regeleinstellungen
(1) Wie viele Kerne die CPU hat, es gibt mehrere Ziffern, 1 bedeutet, dass der Kern eingeschaltet ist, 0 bedeutet, dass der Kern ausgeschaltet ist
(2) worker_processes können geöffnet werden bis zu 8, 8 Die oben genannte Leistung verbessert sich nicht mehr und die Stabilität wird geringer, sodass 8 Prozesse ausreichen CPU-Kern, 10 bedeutet, dass der zweite CPU-Kern aktiviert ist

worker_cpu_affinity 01 10; bedeutet, dass zwei Prozesse aktiviert sind, der erste Prozess entspricht dem ersten CPU-Kern und der zweite Prozess entspricht dem zweiten CPU-Kern

zwei Kern-CPU, offene acht Prozesse

  worker_processes 2; 
  worker_cpu_affinity 01 10;
8 Prozesse werden geöffnet, sie entsprechen jeweils dem Öffnen von zwei Kernen

8-Kern-CPU, 2 Prozesse starten

  worker_processes 8; 
  worker_cpu_affinity 01 10 01 10 01 10 01 10;

10101010 bedeutet Starten des 2., 4., 6. und 8. Kerns, 01010101 bedeutet Starten des 1., 3., 5. und 7. Kerns

2 Prozesse entsprechend 8 Kernen

Neustart nginx

Nachdem die Konfiguration abgeschlossen ist, müssen Sie den Nginx-Dienst neu starten

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

Das obige ist der detaillierte Inhalt vonSo legen Sie die Anzahl der Nginx-Serverprozesse fest und nutzen die Multi-Core-CPU. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen