Comment beaucoup de ressources système seront détenus à des fins de maintien de 1 000 000 de websocket ouvrir?
Websocket est bonne, mais serait-il capable de gérer 1 000 000 de connexions simultanées?
Comment beaucoup de ressources système seront détenus à des fins de maintien de 1 000 000 de websocket ouvrir?
Vous devez vous connecter pour publier un commentaire.
Mise À Jour De Réponse
Réponse courte: oui, mais c'est cher.
Réponse longue:
Cette question n'est pas unique pour les WebSockets depuis les WebSockets sont fondamentalement longue durée de vie des sockets TCP avec un HTTP-comme la poignée de main et un minimum d'encadrement pour les messages.
La vraie question est la suivante: un seul serveur poignée de 1 000 000 simultanée des connexions socket et que les ressources du serveur serait-il consommer? La réponse est compliquée par plusieurs facteurs, mais 1 000 000 d'actifs simultanés connexions socket est possible pour une taille appropriée du système (beaucoup de CPU, de la RAM et de mise en réseau rapide) et avec une écoute du serveur de système et optimisé le logiciel serveur.
Le nombre de connexions n'est pas le principal problème (c'est surtout une question de réglage du noyau et assez de mémoire), c'est le traitement et l'envoi/la réception de données vers/à partir de chacune de ces connexions. Si les connexions entrantes sont étalées sur une longue période, et ils sont pour la plupart inactifs ou peu envoyer des petits morceaux de données statiques, alors vous pourriez probablement obtenir beaucoup plus que 1 000 000 de connexions simultanées. Cependant, même dans ces conditions (les connexions lentes qui sont pour la plupart d'inactivité) vous aurez toujours des problèmes avec les réseaux, les systèmes de serveur de serveur et de bibliothèques qui ne sont pas configuré et conçu pour gérer un grand nombre de connexions.
Voir Alessandro Alinone réponse sur approximative de l'utilisation des ressources à plus de 500 000 connexions.
Voici quelques vieux mais toujours applicable ressources à lire sur la façon dont vous configurez votre serveur et d'écrire votre serveur logiciel pour prendre en charge un grand nombre de connexions:
Aujourd'hui, les systèmes de manutention de 1 million de connexions TCP simultanées n'est pas un problème.
Je peux affirmer que, sur la base de nos propres tests (divulgation complète: je suis le directeur de l'informatique chez Lightstreamer).
Nous avons dû démontrer à plusieurs reprises, pour certains de nos clients, que 1 million de connexions peut être atteint sur une seule zone (et pas nécessairement un super-monstre-machine). Mais permettez-moi de récapituler la configuration où nous avons testé 500 connexions simultanées, comme c'est beaucoup plus récent test effectué sur Amazon EC2.
Nous avons installé Lightstreamer Serveur (qui est un serveur WebSocket, entre autres choses) sur un m2.4xlarge instance. Cela signifie 8 cœurs et 68,4 GiB mémoire.
Nous avons lancé le 11 machines client de créer 500 000 connexions simultanées à la Lightstreamer Serveur. Le test a été configuré de sorte que le total sortant le débit du serveur a été de 90 000 mises à jour/s, résultant dans les pics de 450 Mbit/s en sortant de la bande passante.
Le serveur n'a jamais utilisé de plus de 13 Go de RAM et le CPU est stable autour de 60%.
Avec au moins 30 Go de RAM, vous pouvez gérer 1 million simultanées sockets. Le CPU est fonction du débit de données dont vous avez besoin.