Sri*_*ala 14 benchmarking websocket node.js socket.io
我正在测试我使用socket.io和Node.js编写的websockets应用程序的可伸缩性.我想强调测试并对性能进行基准测试.我可以使用哪些工具?
到目前为止,我已经研究过wsbench,但我想探索任何替代方案.
Sea*_*ter 10
花了一天时间研究基准测试node.js和socket.io,我尝试了很多解决方案,我发现你不能使用wsbench来测试socket.io,因为socket.io有自己的协议需要解决才能使连接.
在尝试了其他一些没有运气的解决方案之后,我最终使用了socket.io-benchmark,我只使用一个核心,只需要一个核心,就可以在m1.large EC2实例上达到60,000个连接.在我的情况下,我只想测量socket.io连接的开销(这需要我在socket.io-benchmark中注释掉一些代码)所以我没有在客户端和服务器之间发送任何消息.
有趣的是,客户端占用的CPU和内存比服务器多.因此,请确保您正在进行基准测试的客户端服务器非常强大,我使用了EC2 c1.xlarge并且有足够的空间.我将基准测试分为6个单独的进程,因此它可以扩展到多个内核并避免内存限制.
注意<rampup in seconds>在客户端上将选项设置得足够高,如果将其设置为低,则将所有缓冲区设置为低并停止研磨.
socket.io-benchmark的唯一问题是我不得不使用节点v0.4.12来使它全部工作,因为它依赖于v8-profiler,它不能在较新版本的节点下编译(截至编写).
小智 5
https://www.npmjs.org/package/thor
\n\n它是一个命令行实用程序,具有与 Apache Bench 类似的输出
\n\n\n\n雷神:版本:1.0.0\n\n雷神,奥丁之子,WebSockets 粉碎者!\n\n你应该:\n- 生成 1 个工作人员。\n- 创建 2 个并发/并行连接。\n - 与强大的 Mj\xc3\x83\xc2\xb6lnir 粉碎 100 个连接。\n\n一旦我声明属于我的东西,你寻求的答案就将是你的。\n\n连接到 ws://server:8080/examples/ websocket/chat\n\n 打开 100 个连接\n\n\n在线 439 毫秒\n花费时间 441 毫秒\n连接 100\n断开连接 0\n失败 55\n传输总量 132.62kB\n接收总量 71.85kB\n\n持续时间 (毫秒): \n\n 最小值 平均值 stddev 中值 最大值\n握手 1 5 3 4 20\n延迟 0 0 1 0 3\n\n百分位数 (毫秒):\n\n 50% 66% 75% 80% 90% 95% 98% 98 % 100%\n握手 4 5 5 6 7 11 17 20 20\n延迟 0 0 1 1 1 1 1 2 3\n\n
Node.js有一个非常简单的Socket.IO 客户端实现。它不是一个真正的基准测试工具,但它确实了解 Socket.IO 的协议。
使用它,编写与您的应用程序交互的客户端相当容易。
| 归档时间: |
|
| 查看次数: |
13324 次 |
| 最近记录: |