提高请求率

如果你没有达到期望的吞吐量,可以采取以下几种措施:

并发性

增加用户数量。为了充分利用目标系统,可能需要很多并发请求。请注意,生成率/渐增速度不会改变峰值负载,它只会改变达到峰值的速度。较长的 等待时间 和休眠时间会影响吞吐量,因此可能需要启动更多的用户。你可以查看关于这个话题的整篇 博客文章

负载生成性能

如果 Locust 打印出关于高 CPU 使用率的警告(WARNING/root: CPU usage above 90%! …​),你可以尝试以下方法:

  • 运行 Locust 分布式模式,以利用多个核心和机器

  • 尝试切换到 FastHttpUser 以减少 CPU 使用率

  • 检查代码中是否存在异常/无限循环

如果你使用的是自定义客户端(而不是 HttpUser 或 FastHttpUser),确保你使用的客户端库是 gevent 友好的,否则它将阻塞整个 Python 进程(实际上会限制每个工作节点只能运行一个用户)

如果你正在进行非常高的吞吐量测试或使用大量带宽,可能还需要查看网络利用率和其他操作系统级别的指标。

如果你遇到负载生成器性能问题,并且愿意付费让别人来处理,你可以查看 Locust Cloud

被测试系统的实际问题

如果响应时间较高并且随着用户数量的增加而上升,那么很可能是你测试的系统已经饱和了。这不是 Locust 的问题,但这里有一些你可能需要检查的地方:

  • 资源利用率(例如 CPU、内存和网络)

  • 配置(例如,Web 服务器的最大线程数)

  • 后端响应时间(例如数据库)

也有一些特定于负载测试的常见陷阱:

  • 负载均衡(确保 Locust 不仅仅攻击你的一些实例)

  • 洪水保护(有时,来自少数几台机器的高负载负载测试会触发这个问题)