Serverleistung bricht im Netzwerk ein

Ich rate jetzt mal ins Blaue. Du verwendest TCP Verbindungen. Die Anzahl der gleichzeitigen offenen und halboffenen TCP Connections ist für gewöhnlich beschränkt. Nehmen wir eine Beschränkung von 20 gleichzeitigen Verbindungen an, siehst du schon worauf das Problem hinaus läuft.

1/1000 Sekunden/Verbdindungen ergibt 0,001 Abfragen pro Sekund, wenn jeweils nur eine Abfrage pro Sekunde möglich wäre. Bei 20 gleichzeitigen Abfragen sind wir bei einer Abfragedauer von 0,02s d.h. 2ms pro Request. Dieses Ergebnis erscheint schlüssig, wenn wir eine Latenzzeit von <1ms Roundtrip zzgl. Verarbeitungsgeschwindigkeit am Server annehmen.

Bei mir im Internen Netzwerk habe ich eine Latenz von "time=0.533 ms" Sekunden, wenn ich das Gateway von meinem PC über einen Switch pinge.

Zu all dem kommt die Problematik, dass TCP Verbindungen sog. Handshakes d.h. Bestätigungen benötigen. Ich würde dir raten entweder auf UDP umzusteigen und/oder die Anzahl der gleichen TCP/UDP Verbindungen drastisch zu erhöhen. In deinem Fall muss das natürlich auf dem Server und dem beteiligten Testrechner geschehen.
 
Zuletzt bearbeitet:
Sorry, ich kenn mich mit js nicht aus, aber ein wenig im Netzwerk...
Wird dadurch nicht auch am Start des Codes auch ein CreateConnection durchgeführt? In jedem Durchlauf des IFs? Hinweise auf einen Code zum beenden der Verbindung fand ich nun nicht.
Versuch mal das mit den halboffenen Connections.

Zu Paketen: Jede Request wird da vmtl als eigenes Paket abgeschickt. Als fast leeres TCP Paket. Da bricht oft der Durchsatz ein.
Wie verhält es sich, wenn das Testscript auf 2 PCs parallel läuft?
 
du sollest es mal mit apache benchmark testen (ab). und dann mit concurrency 100 (-c 100) und keep-alive (-k)
 
Zurück
Oben