0

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

在 EC2 实例上运行时,这些 Locust 测试的性能极差。

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

无需任何努力调整测试,我的 Vagrant 开发环境可以运行 200 个用户并生成 50 rps。

但是,如果我在 EC2 上运行完全相同的 Locust 测试并访问完全相同的 API 主机,那么性能会很糟糕。

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

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

我不确定从哪里开始寻找性能差异。是蝗虫主人还是奴隶?它是 EC2 特有的吗?

4

1 回答 1

1

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
于 2016-03-25T06:01:09.373 回答