蝗虫在EC2上的表现非常糟糕

时间:2016-01-15 03:35:10

标签: amazon-ec2 locust

我有一组用于测试REST API的Locust测试。

在EC2实例上运行时,这些Locust测试执行得非常糟糕。

我在Vagrant VM环境中开发了测试,使用一个VM作为Locust主站,一个VM作为Locust从站。

不费力地调试测试,我的Vagrant开发环境可以运行200个用户并产生50转。

但如果我在EC2上运行完全相同的Locust测试并点击完全相同的API主机,性能就会很糟糕。

使用C3.large实例作为主服务器和C3.2xlarge实例作为从服务器的示例:

如果我指定300个用户,Locust将以指定的生成率生成100左右,那么只会非常缓慢地添加新用户。它通常会减慢到永远不会真正创建300个用户的程度。最多我得到5到8 rps。

我不知道从哪里开始寻找性能上的差异。是蝗虫大师还是奴隶?这是EC2特有的吗?

1 个答案:

答案 0 :(得分:0)

JusDockin,您是否检查了实例的文件描述符限制?

ulimit -n
ulimit -Hn

这可能会直接影响您能够生成的HTTP请求数。 我可以在t2.small实例上轻松生成200个用户(没有尝试生成更多,因为亚马逊在加载测试时看起来并不太友好,除非你事先警告它们)。这就是我在用户数据中的含义:

echo "*     soft    nofile          40000" >> /etc/security/limits.conf
echo "*     hard    nofile          40000" >> /etc/security/limits.conf