Cette question a été posée précédemment mais pas récemment et pas avec une réponse claire.
En utilisant Socket.io, y a-t-il un nombre maximum de connexions simultanées que l'on peut maintenir avant que vous ayez besoin d'ajouter un autre serveur?
Est-ce que quelqu'un connaît des environnements de production actifs qui utilisent des Websockets (en particulier socket.io) à grande échelle? J'aimerais vraiment savoir quel type de configuration est le meilleur pour un maximum de connexions?
Étant donné que les Websockets sont construits sur TCP, je crois comprendre qu'à moins que les ports ne soient partagés entre les connexions, vous serez lié par la limite de port de 64 Ko. Mais j'ai également vu des rapports de connexions 512K utilisant Gretty . Alors je ne sais pas.
Réponses:
Cet article peut vous aider en cours de route: http://drewww.github.io/socket.io-benchmarking/
Je me suis posé la même question, alors j'ai fini par écrire un petit test (en utilisant l'interrogation XHR) pour voir quand les connexions ont commencé à échouer (ou à prendre du retard). J'ai trouvé (dans mon cas) que les sockets ont commencé à agir à environ 1400-1800 connexions simultanées.
Voici un bref résumé que j'ai fait, similaire au test que j'ai utilisé: https://gist.github.com/jmyrland/5535279
la source
J'ai essayé d'utiliser socket.io sur AWS, je peux tout au plus garder environ 600 connexions stables.
Et j'ai découvert que c'était parce que socket.io utilisait d'abord une longue interrogation et était mis à niveau vers websocket plus tard.
après avoir configuré la configuration pour n'utiliser que websocket, je peux conserver environ 9000 connexions.
Définissez cette configuration côté client:
la source
Ce type semble avoir réussi à avoir plus d'un million de connexions simultanées sur un seul serveur Node.js.
http://blog.caustik.com/2012/08/19/node-js-w1m-concurrent-connections/
Cependant, je ne sais pas exactement combien de ports il utilisait.
la source
Pour une connexion simultanée + 300k:
Définissez ces variables dans
/etc/sysctl.conf
:Modifiez également ces variables dans
/etc/security/limits.conf
:Et enfin, augmentez également les tampons TCP
/etc/sysctl.conf
:pour plus d'informations, veuillez consulter https://www.linangran.com/?p=547
la source
Après avoir effectué les configurations, vous pouvez vérifier en écrivant cette commande sur le terminal
la source