You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么JMeter无法达到预期请求速率?应如何提升请求吞吐量?

JMeter请求速率偏低排查及优化方案

你提供的运行日志内容如下:

2021-10-18 03:20:30,005 INFO o.a.j.r.Summariser: summary = 3510096 in 26:26:03 = 36.9/s Avg: 67 Min: 16 Max: 69589 Err: 61 (0.00%)
37次/秒的速率偏低通常是配置遗漏、运行环境限制两类原因导致,具体优化方案如下:

一、优先排查遗漏配置

  • 冗余监听器未禁用:测试计划内如果开启了「查看结果树」「响应数据查看」等实时输出类监听器,会大量消耗CPU资源拉低压测性能,非调试阶段必须全部关闭,仅保留汇总统计类监听器即可。
  • 线程组参数不匹配:如果线程数设置过低、Ramp-Up上升时间设置过长,会导致压力无法达到预期值,可根据目标压测量级调整线程数,Ramp-Up通常设置为1-5分钟即可,无需过长。
  • 启用了额外的性能消耗配置:如果请求中开启了下载嵌入式资源、添加了大量前后置处理器/断言、设置了线程等待延迟,都会降低单线程的请求处理效率,拉低整体速率。
  • 未调整默认JVM参数:JMeter默认堆内存仅为1G,大流量压测时会频繁触发GC卡顿,直接拖慢请求发送速率。

二、提升请求速率的具体操作

  • 调整JVM运行参数:打开JMeter安装目录下的bin/jmeter.bat(Windows系统)或bin/jmeter.sh(Linux系统),修改JVM堆内存配置,建议设置为运行机器物理内存的80%,例如16G内存的机器可调整为:
    -Xms12g -Xmx12g -XX:MaxMetaspaceSize=512m
    
    同时可添加G1垃圾回收器相关参数,减少GC停顿时间。
  • 用非GUI模式运行压测:GUI界面仅可用于脚本调试,正式压测必须使用命令行模式启动,启动命令示例:
    jmeter -n -t 测试脚本名称.jmx -l 压测结果文件.jtl -e -o 测试报告输出目录
    
  • 优化测试计划配置:
    • 非必要场景关闭「下载嵌入式资源」功能,或仅配置下载域名白名单内的资源
    • CSV参数化时设置共享模式为所有线程共享,避免重复读取文件消耗IO资源
    • 移除调试用的断言、前后置处理器
  • 系统层面优化:Linux运行环境下调整文件句柄数、TCP连接参数,将ulimit -n调整到65535以上,避免TCP连接数限制导致请求无法发送。
  • 分布式压测:如果单台运行机器的CPU、网络带宽已经被打满,可采用多台机器组成JMeter压测集群,通过控制机下发脚本,多台执行机同时发起请求,大幅提升总请求速率。

内容的提问来源于stack exchange,提问作者Nir99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:57:03