【接口测试 】 JMeter 使用 http长连接的方法 (转)

【接口测试 】 JMeter 使用 http长连接的方法 (转),第1张

如果需要在JMeter通过http长连接发送请求,首先需要选择了Use KeepAlive 长连接协议,虽然默认是勾选的,但也需要确认一下。

除了选择了Use KeepAlive 长连接协议,还需要在Advanceed高级选项面板,选择HttpClient4类型的HttpRequest请求实现。

在即使选择了Use KeepAlive 长连接协议,还选择了HttpClient4类型的HttpRequest请求外,还差一步:需要配置JMeter.properties中的时间空闲等待时间,设置默认为0,默认情况下,不会对长连接进行空闲等待,一旦连接空闲,则立马断开了,这也是导致大家压测中出现了失败的一种情形。所以,需要进行空闲等待时间的修改,这个时间,建议尽量和后端服务器的空闲等待时间保持一致。

具体的修改办法是:在jmeter.property文件,找到 httpclient4.idletimeout 空闲等待时间选项,进行合适的修改即可。由于前面使用了60s,所以在这里修改为 60000ms,也就是60s。

改完后,要使得修改生效的话,还需要重启一下jmeter。再一次启动高并发测试,与之前的结果进行对比,可以发现:修改完成之后,会发现错误率显著的下降,1000个线程每个请求10次,错误率直接0%。这个结果,对比没有修改之前30%以上的错误率,提升的效果还是非常显著的,所以,建议大家去试一试。

压测发起设备:windows 10

网络:局域网

压测软件:Jmeter 5.0

压测系统内存:Ubuntu 4核8G

PHP 版本:php7.1.23

Nginx 版本:nginx1.14.0

MySQL版本:5.7.24

Redis: 开启

CDN:关闭

压测的初期,在设置了 150qps/s 的并发数下压测几分钟后 Jmeter 就出现了如下报错。

开始考虑的方向是Nginx、PHP、MySQL做了相关限制导致线程被占用, 但是修改对应的配置后发现没有任何效果,该报错的还是报错。 查了一波资料,发现 windows 环境下的端口循环回收需要消耗2~4分钟。由此猜测可能是由于 windows下压测端口数有限,端口资源被占满,没有及时循环回收,导致报错。

使用 win + R 快捷键打开 cmd ,输入 regedit 命令打开注册表

2.1 找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 目录。

2.2 右击 Parameters ,添加一个新的 DWORD ,命名为 MaxUserPort 。

2.3 然后双击 MaxUserPort ,输入 65534,基数选择 十进制(如果是分布式运行的话,控制机器和负载机器都需要这样 *** 作)。

2.4 修改配置完毕后, 需要重启 windows 才会生效。

采用上述的解决方案之后,windows 下设置 150qps/s 并发数进行压测,暂时解决了端口占用的问题。在此基础上,将压测的并发数提高至 700qps/s,两分钟内达到 66000+ 个请求,数量超过了 65534 端口数,再次出现了同一报错。

step1: 使用 win + R 快捷键打开 cmd ,输入 regedit 命令打开注册表。

step2: 找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 目录。

step3: 右击 parameters ,添加一个新的DWORD,命名为 TcpTimedWaitDelay ,将值设置为 30 , 缩短 TIME_WAIT 的等待时间。

step4: 重启windows,配置项生效。

Close_Wait 会占用一个连接,网络可用连接小。当数量过多时,可能会引起网络性能下降,并占用系统非换页内存。尤其是在有连接池的情况下(比如 HttpRequest ),会耗尽连接池的网络连接数,导致无法建立网络连接。

step1: 使用 win + R 快捷键打开 cmd ,输入 regedit 命令打开注册表。

step2: 找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 目录。

step3: 在该目录下添加新的配置项。设置合理的 Keepalive 参数。

step4: 重启windows,配置项生效。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/8001563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存