如何为我的AWS服务器获取有用的负载测试数据?

时间:2016-06-30 02:02:22

标签: amazon-web-services amazon-ec2 load-testing locust

我在AWS上设置了一个系统,我在自动扩展负载平衡环境中运行了一组ec2 insatnces(作为来自弹性beanstalk的应用程序服务器)。这一切都很好。

我想加载测试这个实例,以获得结果,帮助我弄清楚还需要对系统做些什么,以便它可能处理数百万用户。到目前为止,我使用了一个名为Locust(http://locust.io)的工具来执行此操作。这允许我根据需要通过代理向我的实例(s?)发送请求。但是,我无法判断这些请求是经常路由到多个实例还是同一个实例;如果它们被适当地负载平衡,我看不到每个ec2实例正在接收的请求数量或它们在负载下的健康状况。 (我感觉这些请求没有得到正确的负载平衡,因为每次测试运行时,故障率似乎总是在相似的点上急剧增加。)

有没有办法从AWS ec2或弹性beanstalk控制台获取此信息,或者是否有更好的分布式基于Web的负载测试工具可以提供我需要的数据?

2 个答案:

答案 0 :(得分:2)

有两种获取此信息的方法

1)创建S3 Bucket并保存ELB日志。您可以过滤这些日志以检查哪个实例正在为您的请求提供服务

2)检索应用程序级日志:如果您的EC2实例上安装了apache / nginx来提供请求。在每台机器中过滤apache / nginx日志

希望它有所帮助!!

答案 1 :(得分:1)

有一种方法可以从AWS控制台获取此数据。

在弹性beanstalk控制台内有一个标题为 health 的标签。此选项卡(在增强型运行状况概述中)显示弹性beanstalk运行的每个ec2实例的每秒请求数,请求响应,延迟,负载平均值和CPU利用率

此数据的示例如下图所示。 enter image description here

此数据允许系统管理员查看哪些后端实例正在接收请求以及每个后端实例通过负载均衡器和代理发送的请求数量。

这也可以使用以下方式从AWS CLI获得:

  

eb health environment_name