服务器上执行Jmeter脚本,报错org.apache.http.conn.HttpHostConnectException:xxxx failed: 无法指定被请求的地址(connect faile

问题描述:在执行单交易负载脚本的时候发现,在本地跑脚本,异常率0%,同样的脚本放到发压机上执行,就出现了大面积的报错

服务器上执行Jmeter脚本,报错org.apache.http.conn.HttpHostConnectException:xxxx failed: 无法指定被请求的地址(connect faile

 

服务器上执行Jmeter脚本,报错org.apache.http.conn.HttpHostConnectException:xxxx failed: 无法指定被请求的地址(connect faile

 

原因分析:Linux分配给客户端连接的端口用尽,无法建立socket连接导致,虽然socket关闭了,但端口默认等待60s才会释放,所以只要我们再多给点可用的端口就好了。

解决步骤:

1、查看Linux支持的客户端连接端口范围:cat /proc/sys/net/ipv4/ip_local_port_range

服务器上执行Jmeter脚本,报错org.apache.http.conn.HttpHostConnectException:xxxx failed: 无法指定被请求的地址(connect faile

 

2、调低端口释放后的等待时间,默认是60s,修改为15~30s:echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

服务器上执行Jmeter脚本,报错org.apache.http.conn.HttpHostConnectException:xxxx failed: 无法指定被请求的地址(connect faile

 

3、修改tcp/ip协议配置,通过配置/proc/sys/net/ipv4/tcp_tw_reuse,默认为0,修改为1,释放TIME_WAIT端口给新连接使用:echo 1 > /proc/sys/net/ipv4/tcp_tw_resue

服务器上执行Jmeter脚本,报错org.apache.http.conn.HttpHostConnectException:xxxx failed: 无法指定被请求的地址(connect faile

 

4、修改tcp/ip协议配置,快速回收socket资源,默认为0,修改为1:echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

修改完成后,再次在发压机上执行单交易负载脚本,异常率正常:

服务器上执行Jmeter脚本,报错org.apache.http.conn.HttpHostConnectException:xxxx failed: 无法指定被请求的地址(connect faile

上一篇:jmeter之三种参数化的设置方式 (4)


下一篇:【ResourceManagerService 分析】第九篇:MediaCodec 的 init(),configure(),start() 函数的调用 reclaimResource()的逻辑