如何提升分布式Locust压测RPS?当前1200 RPS无法突破
优化分布式Locust负载测试RPS至2000的方向
根据你的测试场景(无业务逻辑的虚拟服务、CPU未跑满、多worker下RPS卡在1200),瓶颈大概率不在服务计算能力,而是在网络IO、Locust配置或Docker资源限制上。以下是几个可落地的优化方向:
先调整
wait_time解除硬限制:你当前设置的wait_time = constant(1)意味着每个用户每1秒才发起一次请求,直接把理论最大RPS锁在了3000(3000个用户),但实际受网络和调度损耗没达标。如果目标是压到服务极限,建议改成wait_time = constant(0)(用户连续发起请求),或者直接删除这个配置(默认是随机等待,但我们要极限就设0)。这一步是最容易快速提升RPS的操作。优化Docker资源分配:Mac上的Docker Desktop默认会限制容器的CPU和内存配额,哪怕你的Mac有6核,容器可能只能用到2核。你可以:
- 打开Docker Desktop设置,把CPU分配拉满(比如6核),内存调高到4G以上;
- 在
docker-compose.yml中给worker容器添加资源限制/预留,避免容器间资源争抢:worker_locust: image: locustio/locust volumes: - ./:/mnt/locust command: -f /mnt/locust/locustfile.py --worker --master-host master_locust deploy: resources: limits: cpus: '1.0' memory: 512M reservations: cpus: '0.5' memory: 256M
调优Http客户端连接池:短请求(比如仅返回"yo"的服务)的TCP握手开销占比极高,调大连接池可以减少重复握手的损耗。在你的
locustfile.py中添加连接池配置:from locust import HttpUser, task, constant from requests.adapters import HTTPAdapter from urllib3.util.retry import Retry class QuickstartUser(HttpUser): wait_time = constant(0) def on_start(self): # 增大连接池大小,关闭不必要的重试 adapter = HTTPAdapter( pool_connections=100, pool_maxsize=100, max_retries=Retry(total=0, connect=0, read=0) ) self.client.mount("http://", adapter) self.client.mount("https://", adapter) # 开启Keep-Alive复用连接 self.client.headers["Connection"] = "keep-alive"切换Docker网络模式减少转发损耗:Mac上的Docker bridge网络默认有一定的性能开销,对于短请求来说影响明显。可以尝试改用host网络模式(注意端口冲突),让容器直接使用主机网络:
services: myservice: build: context: ../ network_mode: host master_locust: image: locustio/locust ports: - "8089:8089" volumes: - ./:/mnt/locust command: -f /mnt/locust/locustfile.py --master network_mode: host worker_locust: image: locustio/locust volumes: - ./:/mnt/locust command: -f /mnt/locust/locustfile.py --worker --master-host localhost network_mode: host调整测试参数和worker数量:
- 尝试增加客户端数量到4000-5000,同时保持孵化率100,让所有客户端尽快进入请求状态;
- 增加worker数量到6个(和你的Mac核数一致),充分利用主机CPU资源;
- 降低Locust日志级别,启动时加上
--log-level WARNING,减少日志输出的资源消耗。
按这个顺序逐步调整,先从wait_time和Docker资源开始,应该能快速突破1200RPS的瓶颈,达到2000的目标。
内容的提问来源于stack exchange,提问作者Anton Daneyko
相关产品推荐
相关产品推荐

