我有一组用来测试REST API的Locust测试。
当在EC2实例上运行时,这些Locust测试的性能非常差。
我在Vagrant VM环境中开发了测试,使用一个VM作为Locust主服务器,另一个VM作为Locust从服务器。
在不调整测试的情况下,我的Vagrant开发环境可以运行200个用户并生成50个rps。
但是,如果我在EC2上运行完全相同的蝗虫测试,并命中完全相同的API主机,性能将非常糟糕。
C3.large实例为主,C3.2xlarge实例从的示例:
如果我指定300个用户,Locust将以指定的产生率生成100左右,然后只会非常缓慢地添加新用户。它通常会慢到永远不会真正创建300个用户的地步。最多也就是5-8 rps。
我不确定从哪里开始寻找性能上的差异。是蝗虫的主人还是奴隶?它是特定于EC2的东西吗?
发布于 2016-03-25 14:01:09
JusDockin,你检查过你的实例的文件描述符限制了吗?
ulimit -n
ulimit -Hn这可能会直接影响您能够生成的HTTP请求的数量。我可以很容易地在一个t2.small实例上生成200个用户(我没有尝试生成更多的用户,因为Amazon在负载测试方面不会太友好,除非您事先警告他们)。这就是我的用户数据中的内容:
echo "* soft nofile 40000" >> /etc/security/limits.conf
echo "* hard nofile 40000" >> /etc/security/limits.confhttps://stackoverflow.com/questions/34803973
复制相似问题