Heim >Backend-Entwicklung >PHP-Tutorial >Parallelitätsleistungstest Apache Nginx
Parallelitätsleistungstest
1 Testzweck
Analysieren Sie anhand der Ergebnisse der Parallelitätsleistungstests von Apache und Nginx die jeweiligen Vor- und Nachteile ihrer Parallelitätsmodelle.
Zu den Leistungsbewertungselementen gehören: RPS (pro Sekunde verarbeitete Anforderungen), CPU-Auslastung, Speichernutzung und maximale Anzahl von Parallelitäten.
Wählen Sie basierend auf den Vor- und Nachteilen der Parallelitätsmodelle Apache und Nginx ein geeignetes Parallelitätsmodell-Framework aus.
2 Testumgebung
1. Hardwareumgebung
Server: Interl-Server Borad
8-Kern-CPU, 2G Speicher, 160G Festplatte,
Client: Gleich wie Serverumgebung
2. Betriebssystem
Betriebssystem: Red Hat EnterPrise Kernel Linux 2.6.18
Client: Red Hat EnterPrise Kernel Linux 2.6.9
3. Netzwerktopologie
Der Server und der Client sind über ein 100 m langes Netzwerkkabel
mit einem Switch verbunden
Server-IP-Adresse: 192.168.192.201
Client-IP-Adresse: 192.168.192.200
3 Testmethoden
3.1 Testtools
Apache 2.2.10 wird mit einer Toolbench
geliefert
Webbench 1.5
3.2 Testschritte
1. Inspektion und Installation der Ausrüstung
Überprüfen Sie, ob alle Systemgeräte intakt und verfügbar sind, und verbinden Sie die Geräte mit dem Host.
2. Überprüfung der Netzwerkverbindung
Der Server und der Client sind über ein 100-M-Netzwerkkabel
mit demselben Switch verbunden
3. Vorbereitung des Betriebssystems
Starten Sie Red Hat Enterprise
Installieren Sie den Maustreiber und konfigurieren Sie das Netzwerk
4. Laden Sie
herunter, installieren Sie es und konfigurieren Sie es
Referenzanhang
5. Apache-Test
Führen Sie Apache aus
cd /usr/local/apache/bin
./apachectl -k start
Der Test-Apache-Dienst wurde erfolgreich gestartet
Besuchen Sie unter Windows: http://192.168.192.201/index.html
Die Testseite „Es funktioniert!“ erscheint
Führen Sie das Apche-Bench-Testprogramm aus
cd /usr/local/apache/bin
./ab -c Clients -n Anfragen http://192.168.192.201/index.html
Führen Sie das Webbench-Testprogramm
aus
cd /usr/local/bin
webbench -c Clients -t time http://192.168.192.200/index.html
(Clients stellt die Anzahl der Benutzer dar, Requests stellt die Anzahl der Parallelität dar)
6. Nginx-Test
Führen Sie nginx
aus
./nginx
Test-Nginx-Dienst erfolgreich gestartet
Besuchen Sie unter Windows: http://192.168.192.201/index.html
Die Seite „Willkommen bei Nginx!“ erscheint
Um die Vergleichbarkeit der Ergebnisse zu testen, kopieren Sie die Apache-Testseite index.html, um die Nignx-Testseite
abzudecken
Führen Sie das Apche-Bench-Testprogramm aus
cd /usr/local/apache/bin
./ab -c Clients -n Anfragen http://192.168.192.201/index.html
Führen Sie das Webbech-Testprogramm
aus
cd /usr/local/bin
webbench -c Clients -t time http://192.168.192.200/index.html
7. Notieren Sie die Testergebnisse
Erfassen Sie die Ergebnisse der Prüfstandtests: Für Tests benötigte Zeit (Testzeit, Einheit: Sekunden), Anfragen pro Sekunde (Anzahl der pro Sekunde verarbeiteten Anfragen)
Zeichnen Sie die Ergebnisse des Webbench-Tests auf: Geschwindigkeit (Anzahl der pro Minute verarbeiteten Anforderungen, um mit Apache Bench konsistent zu sein, wird *30 in die Anzahl der pro Sekunde verarbeiteten Anforderungen während der Aufzeichnung umgewandelt), die Laufzeit wird entsprechend angegeben Betriebsbefehl -t, der Standardwert ist 30 Sekunden
Befehl zur Überprüfung der CPU-Auslastung: top
Speichernutzungsbefehl: kostenlos
4 Testplan
Nginx-Single-Thread-Test
Nginx-Multithread-Tests
Test des Apache-Worker-Modus
Test des Apache-Prefork-Modus
5 Datenzusammenfassung
Testkonfiguration: Apache-Konfigurationsreferenz 7.4, Nginx-Konfigurationsreferenz 7.5
Originaldaten finden Sie in der Originaldaten-XLS
Die Daten sind wie folgt zusammengefasst:
Server-Client RPS
Leerlauffrei (gebraucht) Leerlauffrei (gebraucht)
Nginx-Einzelprozess 79 102526K 82 185196K 20757
Nginx-Multiprozess 81 395444K 85 177405K 20861
Apahce-Vorgabel 38 154380K 75 178215K 30181
Apache-Worker 41 81506K 81 183166K 24669
6 Testfazit
7 Anhang
7.1 Webbench-Installation
Schritte Betrieb
Laden Sie das Installationspaket wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz
herunterEntpacken Sie tar zxvf webbench-1.5.tar.gz
Kompilieren Sie CD Webbench-1.5
machen
Installation make install
7.2 Apache-Installation
Schritt-Bedienungsbeschreibung
Laden Sie das Installationspaket herunter. Laden Sie das Softwarepaket httpd-2.2.10.tar.gz unter http://www.apache.org herunter. Die neueste stabile Version
Entpacken Sie tar xvzf httpd-2.2.10.tar.gz
Kompilierungsoptionen ./configure --prefix=/usr/local/apache Installationspfad
--enable-module=shared Gemeinsamer Speicher zwischen Prozessen
--enable-module=rewrite
--enable-threads Thread-Unterstützung (gültig im Worker-Modus)
--enable-shared=max
--with-mpm=worker Auswahl des Worker-Modus
--with-mpm=prefork Auswahl des Prefork-Modus
--with-mpm=Ereignis-E/A-Multiplexing-Unterstützung
Kompilieren durchführen
Installiere make install
7.3 Nginx-Installation
Schritt-Bedienungsbeschreibung
Laden Sie das Installationspaket herunter. Laden Sie das Softwarepaket nginx-0.7.24.tar.gz unter http://sysoev.ru/nginx/download.html herunter. Die neueste stabile Version
Entpacken Sie tar xvzf ginx-0.7.24.tar.gz
Kompilieren Sie ./configure --prefix=/usr/local/ Installationspfad
Kompilieren durchführen
Installiere make install
7.4 Apache-Konfiguration
Apache-Konfigurationsbefehl:
cd /usr/local/apache/conf
vi http.conf
Parameterkonfiguration im Prefork-Modus:
Konfiguration Apache
Prefork-Modus --with-mpm=prefork
Anzahl der beim Systemstart erstellten Prozesse StartServer 128 //Um mit Nginx vergleichbar zu sein
Anzahl der aktiven untergeordneten Prozesse ServerLimit 50000
Anzahl der während des Lebenszyklus des untergeordneten Prozesses verarbeiteten Verbindungen MaxRequestsPerChild 0 // 0 bedeutet keine Begrenzung
Maximale Anzahl untergeordneter Prozesse MaxClients 50000
Listening-Port Listen 80
Timeout Timeout 300
keepAlive KeepAlive On
Sendfile EnableSendfile on
Konfiguration des Worker-Modus:
Implementierung des Konfigurationselements
Worker-Modus --with-mpm=worker
Anzahl der beim Systemstart StartServers erstellten Prozesse 32
Anzahl der aktiven untergeordneten Prozesse ServerLimit 7812
Maximale Anzahl von Threads MaxClients 500000
Anzahl der untergeordneten Prozessthreads ThreadsPerChild 64 //Gleich dem von Apache zulässigen Maximalwert
Listening-Port Listen 80
Timeout Timeout 300
keepAlive KeepAlive On
Sendfile EnableSendfile on
7.5 Nginx-Konfiguration
Nginx-Konfigurationsbefehl:
cd /usr/local/nginx/conf
vi nginx.conf
Nginx-Konfigurationsbefehl testen:
./nginx –t
Hauptkonfiguration eines einzelnen Worker-Prozesses:
Konfiguration Nginx
Prozess worker_processes 1;
Anzahl der vom Prozess verarbeiteten Verbindungen worker_connections 102400;
Abhörender Portserver {
Hören Sie 80;
}
Sendfile sendfile on;
E/A-Multiplexing-Methode verwendet epoll;
Multi-Worker-Konfiguration:
Konfiguration Nginx
Prozess worker_processes 16;
Anzahl der vom Prozess verarbeiteten Verbindungen worker_connections 102400;
Abhörender Portserver {
Hören Sie 80;
}
Sendfile sendfile on;
E/A-Multiplexing-Methode verwendet Epoll;
Das Obige stellt den gleichzeitigen Leistungstest von Apache Nginx vor, einschließlich des Inhalts. Ich hoffe, dass er für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.