Jmeter 压测错误connection reset解决及参数优化

本文介绍了如何优化JMeter性能,包括将HTTP请求实现改为HttpClient4,调整Windows注册表以增加TCP连接参数,以及通过修改JMeter配置文件设置内存大小以避免压测时的卡顿和内存溢出。同时,建议减少从磁盘读取数据以降低IOPS,使用随机生成数据代替,以保持内存稳定。最后,提醒关注监听器的使用,过多的监听器会增加内存开销,适时关闭不必要的监听器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法仅作参考:

1.修改HTTP请求下面的Impementation选项,改成HttpClient4


2. 新建注册表脚本reg文件,编辑值如下,保存后双击执行;重启电脑,再次压测即不会出现报错

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\]
"MaxUserPort"=dword:fffe
"TcpTimedWaitDelay"=dword:1e
"TcpNumConnections"=dword:fffffe
"MaxFreeTcbs"=dword:7D0
"MaxHashTableSize"=dword:10000

备注:注册表相关值解析,解析中值为10进制,脚本已全转换为16进制 

MaxUserPort:最大动态端口数(Default = 5000, Max = 65534)
TcpTimedWaitDelay:TCP等待延迟时间(30)
TcpNumConnections:TCP最大连接数(Default = 16,777,214)
MaxFreeTcbs:最大TCP控制块(1000-2000)
MaxHashTableSize:最大TCB Hash table数量(64-65536)
​​​​​​​

3. 修复jmter 压测卡顿

由于数据流过大,内存使用超过jmeter默认的上限,就溢出了。

用记事本打开jmeter.bat文件,里面修改如下:

set HEAP=-Xms256m -Xmx4g
set NEW=-XX:NewSize=128m -XX:MaxNewSize=1024m
set NEW指的是每个线程占用的内存set HEAP指的是累积线程占用的内存
set PERM=-XX:PermSize=1024m -XX:MaxPermSize=1024m  

3. bulk

由于我当时一次bulk装了1000条请求,而且还有变参是从磁盘文件上获取数据的。这个时候,本地磁盘IOPS过大,成为瓶颈,导致内存持续增大,直至突破上限,内存溢出。

所以我要做的,就是减少IOPS,我就把变参一律改为random生成,不再读磁盘文件,内存达到一个阙值,便不再增长,问题解决。

4. 还有一种就是jmeter工具本身对内存的占用。监听器越多,内存开销越大,因为记录数据都暂时放在内存中的。故而如果发现内存消耗持续增长,可查看下开了多少监听器,尤其是结果树、表格查看结果等消耗内存很大。可考虑关闭一些不必要的,我一般仅仅使用summary report和图形结果。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值