Ich kann nicht herausfinden, was die Ursache für den Engpass auf dieser Website ist, sehr schlechte Antwortzeiten, sobald etwa 400 Benutzer erreicht. Die Website befindet sich in der Google Compute Engine und verwendet eine Instanzgruppe mit Netzwerklastenausgleich. Wir haben das Projekt mit sailjs erstellt.
Ich habe Lasttests mit Google Container-Engine mit kubernetes durchgeführt und das Skript locust.py ausgeführt.Laden Test Engpass auf Nodejs mit Google Compute Engine
Die wichtigsten Ergebnisse für einen der Tests sind:
RPS : 30
Spawn rate: 5 p/s
TOTALS USERS: 1000
AVG(res time): 27500!! (27,5 seconds)
Die Reaktionszeit unter einer Sekunde zunächst groß ist, aber wenn es beginnt etwa 400 Benutzer die Antwortzeit beginnt Erreichen massiv zu springen.
Ich habe offensichtliche Faktoren getestet, die die Reaktionszeit beeinflussen können, ergibt sich unter:
Compute Engine-Instanzen (2 x Standard-n2, 200GB Festplatte, RAM: 7.5GB pro Instanz):
Only about 20% cpu utilization used
Outgoing network bytes: 340k bytes/sec
Incoming network bytes: 190k bytes/sec
Disk operations: 1 op/sec
Memory: below 10%
MySQL:
Max_used_connections : 41 (below total possible)
Connection errors: 0
Alle Andere Ergebnisse für MySQL scheinen ebenfalls in Ordnung zu sein, kein Grund für Engpässe.
Ich habe den gleichen Test für ein neues sailjs erstellt Projekt versucht, und es hat besser, aber immer noch schreckliche Ergebnisse, 5 Sekunden Res-Zeit für etwa 2000 Benutzer.
Was sollte ich noch testen? Was könnte der Flaschenhals sein?
Es ist wahrscheinlich in Ihrem node.js-Code. Wahrscheinlich etwas synchrones Blockieren der Ereignisschleife, die beim Hochfahren von Anfragen/Sekunde explodiert. Probieren Sie es aus. – bbuckley123
Danke. Ich habe eine Menge Leute gefunden, die sagen, dass globalAgent.maxSockets ein Problem sein kann. Der aktuelle Standardwert ist 5. Könnte dies der Grund sein? @ bbuckley123 – cfl
Der Standard ist eigentlich Infinity. So war es für mehrere Knoten-Releases: https://nodejs.org/api/http.html#http_agent_maxsockets – bbuckley123