如何调试 AWS Elastic Beanstalk 中的性能问题

Posted

技术标签:

【中文标题】如何调试 AWS Elastic Beanstalk 中的性能问题【英文标题】:How to debug performance issues in AWS Elastic Beanstalk 【发布时间】:2013-02-12 12:20:18 【问题描述】:

在过去的几天里,我的 Web 应用程序一直很慢,有时会返回 503 错误。

应用程序在本地运行良好。

涉及到这么多活动部件,我怎么知道该往哪里看?是我的代码吗(如果是,我该如何找到)?是亚马逊?是数据库吗?我的实例超出了我的要求吗?

我正在使用 Amazon Elastic Beanstalk(1 个小实例)和 mysql RDS(1 个微型实例),代码是 php 的。该网站的流量相对较低(过去一周的页面浏览量约为 1500 次)。

【问题讨论】:

微实例的性能配置文件使用突发模型。它将在短时间内上升到 2 个 ECU,然后限制在小于 1 个。如果您的代码/查询没有问题,我会看看这个。在 cloudwatch 中检查 RDS 的 CPU 使用率。 CPU 使用率显示为百分比。它平均为 20%,有时达到 30% 的峰值。这是否意味着我有成长空间,直到接近 100%?还是 30% 太多了? 如果你达到了上限,它应该被推到 100% 并卡在那里。如果你没有看到,从这个角度来看你应该没问题。然而,当我尝试优化时,数据库查询通常是我首先要看的东西。有些人就是没有得到索引。 【参考方案1】:

您需要使用 xdebug 进行分析:http://www.xdebug.org/docs/profiler 然后您可以使用查看 cachegrind 文件的程序(例如 http://sourceforge.net/projects/wincachegrind/)加载该配置文件以查找慢点。也可以打开mysql慢查询日志,看看有没有问题点。 (在my.cnf中:log-slow-queries = [日志文件路径],然后重启mysql)

【讨论】:

听起来很有趣。我会研究这些工具。

以上是关于如何调试 AWS Elastic Beanstalk 中的性能问题的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk Rails 4,已部署,需要帮助阅读日志文件和调试

调试 Elastic Beanstalk Docker 运行失败?

AWS Elastic Beanstalk 上的 Spring Boot 并记录到文件

如何使用 Elastic beanstalk 和 Dockerrun.aws.json 正确部署到 AWS?

如何在运行 AWS Linux 2 的 AWS Elastic Beanstalk 上配置 Linux 交换空间?

如何在 AWS Elastic Beanstalk 上设置 HTTPS