我正在服务器上设置Locust,以评估另一台服务器的响应。我可以运行它,但似乎无法运行超过60 RPS。在其他平台(loader.io)上,我达到了数百个(因此问题不在接收端)。我知道我需要运行多个从属服务器,因为我还没有最大限度地利用创建请求的CPU的CPU使用率。现在,我尝试在同一主机上运行20个从属。我的CPU使用率仍然不是100%,RPS似乎没有增加太多,达到65-70左右。 (尽管据说总共有1000个客户)。瓶颈在哪里?是什么使RPS变小?
运行分布式设置:1个主设备,大量从设备。
以下是我的蝗虫文件:
class UserBehavior(TaskSet):
def __init__(self, *args, **kwargs):
super(UserBehavior, self).__init__(*args, **kwargs)
@task
def process(self):
if not self.parent.data:
return
data = random.choice(self.parent.data)
with self.client.post("/process", json={"5": data}, catch_response=True) as response:
if response.status_code != 200:
response.failure("Status code: %s" % response.status_code)
else:
try:
res = response.json()
if not len(res.get("5", [])):
response.failure("Bad structure")
response.success()
except Exception as err:
print(err)
response.failure("Not Json, got error %s" % response.error)
class WebsiteUser(HttpLocust):
task_set = UserBehavior
min_wait = 0
max_wait = 1
data = get_data()
get_data函数用于生成在测试期间要使用的样本。这是列表的标准python列表。
我应该能够最大限度地提高创建请求的计算机的CPU使用率。