Comment puis-je repère un websocket à base de Node.js application?
Je suis en train de tester l'évolutivité d'une websockets application, j'ai écrit à l'aide d'une douille.io et Node.js. Je tiens à souligner tester et comparer les performances. Quels sont certains des outils que je peux utiliser?
Jusqu'à présent, j'ai regardé dans wsbench mais j'aimerais explorer des solutions de rechange.
OriginalL'auteur Sridatta Thatipamala | 2011-04-23
Vous devez vous connecter pour publier un commentaire.
Il y a une très simple Socket.IO mise en œuvre du client pour Node.js. Ce n'est pas un réel outil d'analyse comparative, mais il sait au sujet de la Prise.D'e /s protocole.
À les utiliser, il est assez facile d'écrire un client qui interagit avec votre application.
je me demandais comment vous avez fini avec cela, j'ai trouvé certains de votre code dans le github.com/drewww/socket.io-benchmarking et remarqué qu'il apparaît, vous mis en œuvre le client en python?
Le python de la mise en œuvre n'a pas fonctionné très bien. La seule façon que je l'ai eu à travailler au sérieux échelle (> 1k de simultanéité) était d'utiliser Java. Le python tentative est toujours dans ce repo, mais il n'a jamais vraiment travailler efficacement.
Jetez un oeil à ma réponse sur ce post, a passé la journée à jouer avec l'analyse comparative de la prise.io et a obtenu de 60 000 connexions facilement, cependant je n'étais pas à l'épreuve les messages entre le client et le serveur. Juste généraux, avec les battements de cœur.
OriginalL'auteur Stéphan Kochen
Passé la journée à chercher dans l'analyse comparative node.js et de la prise.oi, j'ai essayé un certain nombre de solutions, j'ai trouvé que vous ne pouvez pas utiliser wsbench de référence de la prise.io parce que socket.io a son propre protocole qui doit être abordée pour effectuer les connexions.
Après avoir essayé quelques autres solutions avec pas de chance j'ai fini par utiliser socket.io-référence et je viens de toucher de 60 000 connexions sur un m1.grande instance EC2 à l'aide d'un seul cœur avec de l'espace à revendre. Dans mon cas, j'ai seulement voulu mesurer la surcharge de la socket.io connexions (ce qui m'a obligé de commenter un peu de code dans le support.io-indice de référence) donc je n'ai pas de messages envoyés entre le client et le serveur.
Il était intéressant de voir les clients ont eu plus de CPU et de Mémoire que le serveur. Donc, assurez-vous que le serveur de client, vous êtes l'analyse comparative de est costaud, j'ai utilisé un EC2 c1.xlarge et avait beaucoup d'espace pour la tête. Et je me suis cassé la référence en 6 chacun des processus, de sorte qu'il pourrait à l'échelle des processeurs multi-cœurs et d'éviter les limites de la mémoire.
Être prudent pour définir la
<rampup in seconds>
option assez haut sur les clients, si vous le réglez à faible tout les tampons et les broie de s'arrêter.Le seul problème avec la prise.io-référence, j'ai dû utiliser un nœud v0.4.12 pour obtenir tout cela fonctionne en raison d'une dépendance sur v8-profiler, qui ne compile pas sous les versions plus récentes de nœud (de l'écriture).
OriginalL'auteur Sean Bannister
https://www.npmjs.org/package/thor
Il une ligne de commande de l'utilitaire et a le même résultat que Apache Bench
OriginalL'auteur notmyitblog
Juste pour l'analyse comparative de la façon dont de nombreuses connexions simultanées peuvent être mis en place, je le recommande wsbench. Cependant, il ne fonctionnera pas pour la Socket.IO sites (car plus compliqué poignée de main). J'ai été faire des recherches et trouvé un couple d'outils qui vient de configurer les connexions de Socket.IO server. Ce n'est pas suffisant pour mesurer la performance réelle.
Ce que vous avez besoin est d'envoyer et de recevoir des vrais messages que simuler le client de votre application web. J'ai décrit quelques idées sur la façon de créer votre propre référence ici: Analyse comparative pour Node.JS /Socket.IO sites
OriginalL'auteur Yuri Lapitsky