无论使用4个或5个工人,我都无法超过1200 RPS。
我试图以三种变体开始蝗虫-一,四个和五个工人进程(docker-compose up --scale worker_locust=num_of_workers
)。我使用了3000个客户端,孵化率为100。我正在加载的服务是一个虚拟设备,该虚拟设备始终返回yo
和HTTP 200,即它什么也不做,而是返回一个常量字符串。当我有一个工作人员时,我的速度达到600 RPS(并开始看到一些HTTP错误),当我有4个工作人员时,我的速度可以达到〜1200 RPS(没有一个HTTP错误):
当我有5个工人时,我得到〜1200 RPS,但CPU使用率较低:
我认为,如果CPU在5个工人的情况下(相对于4个工人的情况)发生故障,那么限制RPS的不是CPU。
我正在6核MacBook上运行它。
我使用的locustfile.py
帖子实际上几乎是空的请求(只有几个参数):
from locust import HttpUser, task, between, constant
class QuickstartUser(HttpUser):
wait_time = constant(1) # seconds
@task
def add_empty_model(self):
self.client.post(
"/models",
json={
"grouping": {
"grouping": "a/b"
},
"container_image": "myrepo.com",
"container_tag": "0.3.0",
"prediction_type": "prediction_type",
"model_state_base64": "bXkgc3RhdGU=",
"model_config": {},
"meta": {}
}
)
我的docker-compose.yml:
services:
myservice:
build:
context: ../
ports:
- "8000:8000"
master_locust:
image: locustio/locust
ports:
- "8089:8089"
volumes:
- ./:/mnt/locust
command: -f /mnt/locust/locustfile.py --master
worker_locust:
image: locustio/locust
volumes:
- ./:/mnt/locust
command: -f /mnt/locust/locustfile.py --worker --master-host master_locust
有人可以建议迈向2000 RPS的方向吗?
答案 0 :(得分:1)
您应该查看常见问题解答。
https://github.com/locustio/locust/wiki/FAQ#increase-my-request-raterps
可能是您的服务器(至少一台机器)无法处理更多请求。您还可以采取其他措施来确保确实如此。您可以尝试在多个计算机上运行的FastHttpUser,或者只是增加用户数量。但是,如果可以的话,请检查服务器如何处理负载,并查看在那里可以优化的内容。