So optimieren Sie Nginx, um 100+K -Anforderungen pro Minute zu bearbeiten

So optimieren Sie Nginx, um 100+K -Anforderungen pro Minute zu bearbeiten

Vor ein paar Tagen habe ich eine Zuordnung zum Konfigurieren von NGNIX -Webserver erhalten, mit dem 100K -Anforderungen pro Minute bearbeitet werden können. Um diese Aufgabe zu erledigen, nehme ich ein Ubuntu -System mit 4 CPU und 8 GB Speicher und starte die Konfiguration wie unten.

1. Installieren Sie den NGINX -Webserver

Dies sind optionale Schritte, wenn Sie Nginx nicht auf Ihrem System installiert haben.

Installieren Sie Ubuntu/ Debian/ Linuxmint

$ sudo apt-get install nginx 

Installieren Sie auf CentOS / Rhel / Fedora

# yum install nginx installieren 

2. Tune Nginx -Konfigurationsdatei

Bearbeiten Sie nun die Nginx -Konfiguration /etc/nginx/nginx.Conf und Änderungen der folgenden Werte vornehmen. In der folgenden Konfiguration werden nur geänderte Parameter angezeigt.

Worker_Processes 8; # NEIN von CPU * 2 Worker_Rlimit_NoFile 50000; Ereignisse Worker_Connections 20000;  http sendFile on; tcp_nopush on; tcp_nodelay on; keepalive_requests 100; #keepalive_timeout 65; open_file_cache max = 100; gzip ab; Access_log aus; type_hash_max_size 2048;  

3. Starten Sie Nginx neu und testen Sie die Last

Nachdem alle oben genannten Änderungen vorgenommen haben.

# Service Nginx Neustart 

Verwenden Sie nun das Apache -Benchmark -Tool zum Testen der Last. Ich habe eine Datei auf dem Server von 50 KB hochgeladen und sie um 100.000 Mal beendet.

# AB -n 100000 -c 500 http: // 11.22.33.44/MyPage.html 
 Dies ist Apachebch, Version 2.3 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http: // www.Zeustech.net/lizenziert an die Apache Software Foundation, http: // www.Apache.Org/ Benchmarking 11.22.33.44 (Patient sein) abgeschlossene 10000 Anfragen abgeschlossen 20000 Anfragen abgeschlossen 30000 Anfragen ausgefüllt 40000 Anfragen ausgefüllt 50000 Anfragen Abgefüllt 60000 Anfragen ausgefüllt 70000 Anfragen ausgefüllt 80000 Anfragen ausgefüllt 90000 Anfragen abgeschlossene 100000 Anfragen abgeschlossene 100000 Anfragen Serversoftware: NGINX/1 Abgeordnet.4.6 Server -Hostname: 11.22.33.44 Serverport: 80 Dokumentpfad: /myPage.HTML -Dokumentenlänge: 53339 Bytes Parallelitätsstufe: 500 Zeit für Tests: 43.570 Sekunden Vollständige Anfragen: 100000 fehlgeschlagene Anfragen: 0 Gesamt übertragen: 5358300000 Bytes HTML übertragen.18 [#/s] (Mittelwert) Zeit pro Anfrage: 217.848 [MS] (Mittelwert) Zeit pro Anfrage: 0.436 [MS] (Mittelwert über alle gleichzeitigen Anforderungen) Übertragungsrate: 120100.12 [KBYTES/SEC] Empfangene Verbindungszeiten (MS) min Mittelwert [+/- SD] Median Max Connect: 4 84 275.9 18 7027 Verarbeitung: 39 132 124.1 90 3738 Warten: 7 21 22.5 18 1598 Gesamt: 50 216 308.0 109 7208 Prozentsatz der Anfragen, die innerhalb einer bestimmten Zeit (MS) 50% 109 66% 127 75% 158 80% 180 90% 373 95% 1088 98% 1140 99% 1333 100% 7208 (längste Anfrage), abgeschlossen wurden 

Gemäß den oben genannten Ausgang können Sie sehen, dass für 100.000 Anfragen in 43 Anfragen bedient wurden.570 Sekunden von Nginx.