Taurus分布式压测如何将总并发数平均分配到各worker节点
解决Taurus分布式并发不拆分问题
问题原因
Taurus默认分布式执行模式下,concurrency参数的作用域是单worker节点,你设置的200会被每个节点单独执行,因此总并发会变成节点数*单节点配置值,不符合你的预期。
正确修改方案
要实现总并发自动平均分配给所有worker节点,只需要在execution配置块中添加distribute-concurrency: true参数即可。开启该参数后,你配置的concurrency值会作为所有worker的总并发值,自动按worker数量平均拆分。
修改后的完整配置如下:
execution: - distributed: - 172.17.0.2:1099 - 172.17.0.3:1099 scenario: scenario concurrency: 200 distribute-concurrency: true # 新增这一行开启总并发自动拆分 scenarios: scenario: properties: # 如果你脚本里的PERFUSER是控制线程数的参数,建议改成动态读取分配后的单worker并发值 PERFUSER: ${concurrency} script: /scenarios/scipt.jmx
额外注意事项
- 请确保你引用的
.jmx脚本中,线程组的线程数不是硬编码数值,而是通过属性读取的动态值,比如线程数设置为${__P(PERFUSER, 1)},才能让配置的并发值正常生效 - 如果后续扩容worker节点,不需要修改
concurrency值,Taurus会自动按新的节点数重新计算单节点分配的并发量
内容的提问来源于stack exchange,提问作者user1934513
相关产品推荐
相关产品推荐

