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

如何配置JMeter线程组实现1小时20万请求(55次/秒吞吐量)

JMeter线程组配置实现1小时20万请求(每秒55次吞吐量)

问题背景

需对本地Spring Boot应用执行压测,目标为1小时内发送200,000次请求(即每秒55次吞吐量),同时已尝试两种配置方案并遇到问题:

已尝试方案1:大线程数线性启动

  • 小比例测试:180秒内发送10,000次请求,设置线程数10,000、启动周期180秒,可达成每秒55次吞吐量
  • 放大测试:900秒内启动50,000线程,虽能达到目标吞吐量,但JMeter及系统运行极慢,响应错误率达6%,无法支撑20万级请求场景

已尝试方案2:恒定吞吐量定时器

  • 配置:线程数10、启动周期900秒、无限循环、目标吞吐量3300次/分钟、基于所有活跃线程计算
  • 问题:测试运行超40分钟才达到每秒55次吞吐量,无响应错误但启动速度过慢

最优配置方案

核心思路:固定合理线程数+恒定吞吐量定时器,优化启动与调度逻辑

  1. 线程组基础配置

    • 线程数:设置为50-100(根据本地机器性能调整,避免线程过多导致JMeter资源耗尽)
    • 启动周期:设为60秒(快速启动全部线程,避免长周期Ramp-up拖慢吞吐量达标速度)
    • 循环次数:勾选永远,让线程持续运行直到满足总请求数要求
  2. 恒定吞吐量定时器配置

    • 目标吞吐量:设置为3300次/分钟(对应每秒55次的目标)
    • 吞吐量计算依据:选择**"This thread group"**(仅针对当前线程组计算,避免受其他组件干扰)
    • 作用范围:确保定时器作用于线程组内所有请求
  3. 总请求数控制

    • 方式一:添加Runtime Controller,设置运行时间为3600秒(1小时),到点自动终止测试
    • 方式二:添加Counter组件,设置起始值1、最大值200000,配合If Controller,当计数器达到200000时终止线程

方案优势

  • 规避大线程数瓶颈:合理控制线程数量,减少JMeter自身资源消耗,避免系统卡顿与错误率上升
  • 快速达标吞吐量:短启动周期让线程快速进入活跃状态,恒定吞吐量定时器直接按目标速率调度请求,无需长时间等待
  • 精准控制请求总量:通过时间或计数器确保刚好发送20万次请求,完全匹配测试目标

额外优化建议

  • 用命令行模式运行JMeter:执行jmeter -n -t 你的测试计划.jmx -l 结果文件.jtl,关闭GUI可大幅提升JMeter运行效率
  • 调整JMeter堆内存:修改jmeter.bat(Windows)或jmeter.sh(Linux)中的HEAP参数,例如设置为-Xms2g -Xmx4g(根据机器内存调整)
  • 优化本地Spring Boot应用:关闭冗余日志、启用生产模式,避免应用自身成为性能瓶颈

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 17:20:26