蝗虫吃CPU运行2 - 3小时后

  • 本文关键字:3小时 运行 CPU locust
  • 更新时间 :
  • 英文 :


我有一个简单的HTTP服务器,我正在测试。此服务器与其他HTTP服务器和Cassandra DB交互。

当前我使用100个用户,每秒1个请求,所以服务器上总共有100 tps。我注意到,在Docker的统计数据中,CPU使用率变得越来越高,大约2-3小时后,CPU使用率达到90%,甚至更高。之后,我收到了蝗虫的通知,说测量结果可能不一致。但是延迟没有增加,所以我不知道为什么会发生这种情况。

你能指出问题的可能原因吗?我认为100tps应该由一个vCPU来处理。

谢谢,上午

如果没有看到一些代码,我们无法确切地知道哪里出了问题,即使这样,其他因素,如环境、数据或运行它的服务器,也可能有我们不知道的其他因素。

这是可能你的代码有问题蝗虫用户,比如内存泄漏或他们只是为一个工人做过多的处理,很多用户。对于只进行简单HTTP调用的用户,单个CPU通常每秒可以处理数千个请求。如果做得比这更多,你就会开始期望减少员工的工作量。也有可能你只是需要一个更强大的CPU(或更多的RAM或带宽)来做你想要的规模。

做一些分析,看看你是否能在你的代码中发现任何效率低下的地方。运行较小的测试,看看同样的行为在较小的负载下是否明显。运行相同的负载,但在其他cpu上使用额外的Locust工作线程。

也有可能你的DB无法处理负载。CPU使用量的增加可能是由于代码处理等待来自DB的连接的方式。也许DB可以在可接受的速率下维持80个用户,但是任何额外的用户都会使它越来越落后,并且您的Locust用户等待请求的数据的时间越来越长。

更多建议,请查看Locust FAQ https://github.com/locustio/locust/wiki/FAQ#increase-my-request-raterps

最新更新