关于Locust并发用户运行机制及相关命令行参数的疑问
问题1解答
- 若你的Locust任务脚本没有配置
wait_time参数,2个并发用户会在收到前一个请求的响应后立刻发送下一个请求,不需要等待满1秒。对应你给出的场景:服务2个worker单请求处理耗时20ms,worker不会进入空闲状态,任意时刻都会有2条并发请求在处理,对应QPS稳定在(1000ms/20ms)*2=100。 - 若脚本配置了
wait_time,用户会在两次请求之间插入设定的等待时长,此时worker可能出现空闲。
问题2解答
--users和--spawn-rate是强关联的启动参数:
--users是最终要达到的最大并发用户数目标--spawn-rate是用户创建的速率,单位为「个/秒」,控制Locust从启动开始,每秒新增多少个用户,直到并发数达到--users的设定值。
举个例子:执行
locust -u 100 --spawn-rate 5,Locust会每秒新增5个并发用户,20秒后达到100的最大并发数,避免一次性拉起全部用户造成的瞬时压力尖刺。
问题3解答
你的认知基本正确,仅存在两处细节边界需要补充:
- 并发用户是「独立执行任务的客户端」,每个客户端默认串行发送请求:同一时间1个用户只会发送1条请求,等待响应后再发下一条,n个用户最多同时产生n条并发请求,不存在单用户多并发的情况。
- 若脚本配置了
wait_time,用户会在两次请求之间等待对应时长,此时并发请求数会低于用户数,但Locust依然会维持n个在线用户持续循环执行任务。
内容的提问来源于stack exchange,提问作者rkoy start
相关产品推荐
相关产品推荐

