我正在使用locust对应用程序进行负载测试。我在本地的ubuntu系统上编写并测试了这个脚本,一切都很顺利。
我使用Amazon Linux镜像创建了一个EC2实例,在调整/etc/security/limits.conf文件中的文件限制后,我加载了locust,并且进行了一个小测试(简单的GET测试,只是为了检查一下管道,2000个用户,20孵化率)。
然而,当我加载一个更大的测试,8000个用户40孵化率时,我注意到大约3,000或4,000个用户,孵化率似乎变慢了,一次只增加4-5个而不是40个新的“用户”。因此,它花了很长时间才达到8000。这是意料之中的行为吗?如果不是,你知道问题可能是什么吗?
发布于 2016-10-21 01:57:38
Locust所说的“用户”实际上是gevent衍生的TaskSets。这意味着您将在单个Python进程中产生数千个事件小程序,这意味着管理这些事件小程序的大量开销。
如果你想产生成千上万的TaskSets,我推荐在distributed mode中运行Locust。您可以在同一硬件上运行多个从站,也可以将从站分布在多个实例中。Google写了一篇整洁的文章,并为此目的开放了一些Kubernetes容器。我们用阿尔卑斯山和一个经过大量修改的蝗虫编写了我们自己的码头容器,我们的从属与TaskSets的比例最终是1:100。从机与实例的比例在很大程度上取决于您获得的实例大小。
https://stackoverflow.com/questions/39518334
复制相似问题