Diese Frage wurde zuvor gestellt, aber nicht in letzter Zeit und nicht mit einer klaren Antwort.
Gibt es bei Verwendung von Socket.io eine maximale Anzahl gleichzeitiger Verbindungen, die beibehalten werden können, bevor Sie einen weiteren Server hinzufügen müssen?
Kennt jemand aktive Produktionsumgebungen, in denen Websockets (insbesondere socket.io) in großem Umfang verwendet werden? Ich würde wirklich gerne wissen, welche Art von Setup für maximale Verbindungen am besten ist.
Da Websockets auf TCP basieren, besteht meines Erachtens die Bindung an das 64-KB-Portlimit, sofern die Ports nicht zwischen Verbindungen geteilt werden. Ich habe aber auch Berichte über 512K-Verbindungen mit Gretty gesehen . Also ich weiß es nicht.
Antworten:
Dieser Artikel kann Ihnen dabei helfen: http://drewww.github.io/socket.io-benchmarking/
Ich habe mich die gleiche Frage gestellt und am Ende einen kleinen Test (mit XHR-Polling) geschrieben, um festzustellen, wann die Verbindungen ausfielen (oder zurückfielen). Ich stellte (in meinem Fall) fest, dass die Sockets bei ungefähr 1400-1800 gleichzeitigen Verbindungen zu funktionieren begannen.
Dies ist eine kurze Zusammenfassung, die ich gemacht habe, ähnlich dem Test, den ich verwendet habe: https://gist.github.com/jmyrland/5535279
quelle
Ich habe versucht, socket.io unter AWS zu verwenden. Ich kann höchstens 600 Verbindungen stabil halten.
Und ich habe herausgefunden, dass es daran liegt, dass socket.io zuerst lange Abfragen verwendet und später auf websocket aktualisiert hat.
Nachdem ich die Konfiguration so eingestellt habe, dass nur Websocket verwendet wird, kann ich ungefähr 9000 Verbindungen beibehalten.
Stellen Sie diese Konfiguration auf der Clientseite ein:
quelle
Diesem Typ scheint es gelungen zu sein, über 1 Million gleichzeitige Verbindungen auf einem einzelnen Node.js-Server herzustellen.
http://blog.caustik.com/2012/08/19/node-js-w1m-concurrent-connections/
Mir ist jedoch nicht klar, wie viele Ports er verwendet hat.
quelle
Für + 300k gleichzeitige Verbindung:
Setzen Sie diese Variablen in
/etc/sysctl.conf
:Ändern Sie diese Variablen auch in
/etc/security/limits.conf
:Und schließlich erhöhen Sie auch die TCP-Puffer
/etc/sysctl.conf
:Weitere Informationen finden Sie unter https://www.linangran.com/?p=547
quelle