前言:自己搞压力测试的时候出现了这个异常,为了搞这个问题花费了较多时间,也实在觉得没有必要,借此希望广大同胞能到相同问题时能够快速解决问题同时也方便自己再次遇到这个问题时能够快速翻案,特此记录一下。
异常:服务器端口拒绝连接请求
原因:客户端的连接请求超出服务端的端口连接处理能力,也就是你客户端jmeter设置的线程数超出了服务端端口最大处理的数量了。(举个例子服务端只允许同时建立1w连接,但在某个时间点请求链接超出这个数,超出这个数的连接就会拒绝连接)
解决方案:降低请求压力,配置和优化服务端最大请求数量。
从客户端处理:
1.取消勾选jmeter的use keepAlive
这里的选项意思是:是否要建立长连接(长连接会长时间占用服务端的窗口,所以测试的时候可以取消)。
注意:如果是要压测服务器性能,请不要取消勾选,因为现实业务中是会有长连接的,我们应该在测试的时候给性能指标一些”容错量“。
取消勾选后可以明显看到可以访问的线程数变多了,也就是可以建立更多的连接了
可以从聚合报告中的异常率来看(我的异常率从45%降到了35%)
还有35%怎么解决?(非性能压测的话建议直接降低jmeter线程数,不必要把时间浪费在这)
从服务端处理:
修改系统的端口访问相关配置
1.分布式集群后分配连接压力的方式
2.修改端口访问的最大连接数