Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Sockets 在Gatling中指定套接字选项_Sockets_Tcp_Gatling_Time Wait - Fatal编程技术网

Sockets 在Gatling中指定套接字选项

Sockets 在Gatling中指定套接字选项,sockets,tcp,gatling,time-wait,Sockets,Tcp,Gatling,Time Wait,在性能测试虚拟RESTful服务时,我遇到了ConnectException:cannotassign requested address问题,描述或应用了-将临时端口范围增加到10000-65000,我的ulimit-n是64000,我甚至启用了net.ipv4.tcp\u tw\u重用和net.ipv4.tcp\u tw\u回收——在这篇优秀的博客文章中提供了更多关于这些的信息 这仍然没有帮助,我仍然可以模拟每秒最多10k的请求(因为在我的测试中,每个用户只执行一个请求),所以我必须使用4台

在性能测试虚拟RESTful服务时,我遇到了
ConnectException:cannotassign requested address
问题,描述或应用了-将临时端口范围增加到10000-65000,我的
ulimit-n
是64000,我甚至启用了
net.ipv4.tcp\u tw\u重用
net.ipv4.tcp\u tw\u回收
——在这篇优秀的博客文章中提供了更多关于这些的信息

这仍然没有帮助,我仍然可以模拟每秒最多10k的请求(因为在我的测试中,每个用户只执行一个请求),所以我必须使用4台和更高版本的8台客户机。在4台机器上,我可以每台机器执行5k请求/秒(总计20k),但在8台机器上,我甚至不能在这些5k上运行,所以问题可能出在其他地方

不过,我想问一下,是否有任何选项可以通过模拟或gatling.conf在gatling连接上设置
SocketOptions
——我想在那里使用。一些选项(连接超时)可以在gatling.conf中设置,但我还没有找到这个选项

此外,是否有任何文件描述Gatling如何共享连接?我希望有一个大的连接池,其中“用户”获取他们的连接实例,或者虚拟每个用户打开他的连接,但我在某个地方读到,每个用户都有一个连接池(那么,他与谁共享连接?或者这些连接只是在他以前的请求中使用的缓存连接?)

编辑:因此最终解决方案很简单:在设置
ScenarioBuilder.protocols(…)
时使用
.shareConnections
。我曾尝试使用
-Dgatling.core.http.shareConnections
作为命令行参数(我正在从maven插件运行测试),但没有成功;方案方法确实如此

我想在那里用sou

不可能自动取款机。将出现在2.2中

是否有任何文件描述Gatling如何共享连接


对。默认情况下,每个虚拟用户有一个连接池,因为虚拟用户在获取资源时可以使用多个并发连接,就像浏览器一样。然后,您可以切换到一个共享的全局池。

还有一个注意事项:即使使用
net.ipv4.tcp\u tw\u重用
我仍然可以在
ss-iat
中看到大量等待连接的时间,鉴于这些错误,我不确定是否正确应用了它。很遗憾,我无法在不丢失配置的情况下重新启动整个服务器-是否有任何特定的服务需要重新启动?噢,谢谢@Radim Vansa!设置
.shareConnections
为我解决了这个问题。没有它,我无法每秒处理500多个请求。使用
ulimit-n64000
就成功了。