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

How can I get useful load testing data for my AWS server?

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

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

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

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

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

2) 检索应用程序级日志:如果 apache/nginx 安装在您的 EC2 实例上以满足请求。过滤器 apache/nginx 登录每台机器

希望对您有所帮助!!

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

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

下图显示了此数据的示例。

此数据允许系统管理员查看他们的哪些 back-end 实例正在接收请求,以及每个实例有多少通过 load-balancer 和代理发送。

这也可以通过 AWS CLI 使用:

eb health environment_name