Jmeter使用http请求时长连接的建立与保持问题

从jmeter3.1升级到5.1.1一年多了。一开始使用的时候就发现使用httpclient4 容易报连接异常,所以一直都是用java实现进行测试。 最近新的测试需求要建立大量连接。测试下来发现java实现底层应该是有复用连接的逻辑。使用15000的线程并发。在服务端的telegraf监控上只能统计到3000~4000的 established的TCP连接。 改源码这种操作还是靠后考虑,于是抓了一通包,百度了一通,试图从配置项里解决httpclient4的问题。 大致过...
摘要由CSDN通过智能技术生成

      从jmeter3.1升级到5.1.1一年多了。一开始使用的时候就发现使用httpclient4 容易报连接异常,所以一直都是用java实现进行测试。

       最近新的测试需求要建立大量连接。测试下来发现java实现底层应该是有复用连接的逻辑。使用15000的线程并发。在服务端的telegraf监控上只能统计到3000~4000的 established的TCP连接。 改源码这种操作还是靠后考虑,于是抓了一通包,百度了一通,试图从配置项里解决httpclient4的问题。

    大致过程如下:

       1、java实现的keepalive是有效的,单线程发送多次请求时,使用wireshark可以观察到只进行了在开头与结束进行了握手与挥手

        2、jmeter5.1.1的httpclient4实现与默认实现下,keepalive是无效的,单线程多次请求时,使用wireshark抓包,每次请求都要进行握手与挥手,这就坑了,难怪连接数蹭蹭的往上走。TIME_WAIT也是一直保持高值。

       3、网上搜出来的解决办法没有效果,现在搜索效率真的很低,反反复复搜出来就是同样的几篇文章,主要方法都是修改httpclient4.idletimeout的超时时间。实测根本没有作用,不知道这些文章是无脑转发还是爬虫爬下来的。

其实这个配置项的说明已经很清楚了,我当时看的时候就觉得这项应该没有作用:

# Idle connection timeout (Milliseconds) to apply if the server does not send
       # Keep-Alive headers (default 0)
     

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值