4

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

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

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

4

2 回答 2

2

有两种方法可以获取此信息

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

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

希望能帮助到你 !!

于 2016-06-30T04:48:27.343 回答
1

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

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

下图显示了此数据的一个示例。在此处输入图像描述

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

这也可以通过 AWS CLI 使用:

eb 健康环境名称

于 2016-07-10T22:38:13.240 回答