Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对websocket服务器进行容量测试?_Websocket_Load Testing_Performance Testing_Capacity - Fatal编程技术网

如何对websocket服务器进行容量测试?

如何对websocket服务器进行容量测试?,websocket,load-testing,performance-testing,capacity,Websocket,Load Testing,Performance Testing,Capacity,我想测试我的websocket服务器的容量,但不知道从哪里开始 我能够编写一个AI来发送消息来测试使用情况,但我如何模拟/建立100、500、1000个连接等等?是为了满足这一需求而设计的,但该工具的性能部分仍然显示“正在开发中”.不久前,我遇到了一个类似的问题,当时我不得不使用socket.io库对服务器加载测试数千个连接。我无法找到任何现成的解决方案来实现这一点,因此最终我使用Node.js和一些for循环构建了自己的测试 Node的优点是,您可以将客户端javascript复制并粘贴到服务

我想测试我的websocket服务器的容量,但不知道从哪里开始


我能够编写一个AI来发送消息来测试使用情况,但我如何模拟/建立100、500、1000个连接等等?

是为了满足这一需求而设计的,但该工具的性能部分仍然显示“正在开发中”.

不久前,我遇到了一个类似的问题,当时我不得不使用socket.io库对服务器加载测试数千个连接。我无法找到任何现成的解决方案来实现这一点,因此最终我使用Node.js和一些for循环构建了自己的测试

Node的优点是,您可以将客户端javascript复制并粘贴到服务器代码中,因此模拟客户端非常简单,然后只需进行多个连接即可生成负载。这是一种快速简便的方法,可以运行所需的javascript来建立套接字连接(假设这就是连接套接字的方式)

我点击的gotcha运行了600多个监听器,这使得我的节点盒上的CPU达到了最大,但是AWS的一点魔法解决了这个问题


另一个问题是报告结果。对于套接字连接,实际上没有任何响应时间的概念,至少在经典意义上没有,因此很难知道什么时候出了问题——至少从客户端的角度是这样。但通过监控服务器,我们可以看到连接何时失败,资源何时开始短缺,这足以让我们衡量它可以支持多少连接。

您可以使用JMeter实现这一目的,并从这里获得WebSocket sampler插件:


对于1000多个连接,您可能需要多台代理计算机来完成任务。这不一定是专用服务器,因为您可以在少数工作站(开发人员/测试人员机器)上部署代理,并将它们用于测试目的。您可以通过将测试执行时间安排在几个小时内来限制影响。

Jmeter插件对并发用户的数量有严重限制。直到大约450名用户,它才开始正常工作。然后我尝试了carols library(),但是这个库对其web套接字包的循环也有限制