JMeter HTML报告中吞吐量与网络速度显示infinity的原因及解决办法
单用户压测请求显示infinity问题的解决方案
可能原因
- 单用户场景下请求响应时间远超多用户场景,超出了Apache压测工具(如JMeter)统计模块的浮点数精度上限,被判定为
infinity。单用户无并发竞争,服务器资源全量倾斜给单个请求,处理时间会被拉长,容易触发数值溢出。 - 样本量不足导致计算异常:单用户模式下部分请求仅执行1次,统计分位值(如99%、95%分位)时出现除以0的情况,最终输出无穷大。
可行解决办法
- 调整工具精度配置:以JMeter为例,打开
jmeter.properties文件,查找与数值精度、样本统计相关的配置项(如sample_result.max_elapsed_time),增大允许的最大响应时间阈值;或者修改统计报告生成逻辑,在输出statistics.json前对数值做校验,将infinity替换为原始采集的响应时间。 - 增加单用户场景样本量:让单用户模式下的请求重复执行多次,给统计模块足够的样本数据,避免因样本过少触发异常计算。
- 用脚本修复统计文件:写个简单脚本批量处理
statistics.json,替换infinity为真实值。比如用jq命令快速处理:# 可根据实际提取的原始响应时间替换100000这个值 jq 'walk(if type == "number" and . == infinity then 100000 else . end)' statistics.json > fixed_stats.json - 升级压测工具版本:部分旧版Apache压测工具存在数值统计bug,升级到最新稳定版大概率能解决这类问题。
内容的提问来源于stack exchange,提问作者dreampopgaze
相关产品推荐
相关产品推荐

