如何配置Autocannon维持每秒固定新请求数(不受等待请求影响)
Autocannon 实现固定每秒新请求数的配置方案
你的问题核心在于connections参数设置过小,结合被测端点4秒的延迟,导致Autocannon无法维持每秒200次新请求的速率。
原因解析
connections控制的是Autocannon的最大并发连接数。当接口延迟为4秒时,每个连接在发出请求后需要等待4秒才能收到响应并复用(或关闭)。此时200个连接每秒最多只能产生 200 / 4 = 50 次新请求,远低于你期望的200次。而overallRate的生效前提是有足够的连接数来支撑这个速率,否则会被并发连接数限制住。
解决方案
要实现每秒固定200次新请求,需要调整配置,确保有足够的连接数来覆盖延迟带来的连接占用:
const config = { // 计算所需连接数:每秒请求数 × 平均延迟(秒)= 200 × 4 = 800 connections: 800, duration: 120, overallRate: 200, timeout: 10 };
额外说明
- 如果不想手动计算连接数,也可以不设置
connections(或设为一个极大值,比如10000),让Autocannon根据请求速率自动创建足够的连接。但注意不要超过系统的文件描述符限制,必要时可以提前调整系统参数。 - 若需要每个请求使用独立的新连接(而非复用连接),可以添加
reuseConnection: false参数,但这会增加系统资源消耗,需根据实际测试场景选择。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

