我如何排查 Elastic Beanstalk 的内存和 CPU 问题?
上次更新时间:2019 年 10 月 15 日
我的 AWS Elastic Beanstalk 应用程序的 CPU 或内存使用量太高。
解决方法
配置您的环境以收集指标
要深入了解内存和 CPU 使用情况,请尝试以下操作:
- 使用 Elastic Beanstalk 运行状况代理检查您的 Amazon Elastic Compute Cloud (Amazon EC2) 实例的运行状况。
- 使用 Amazon CloudWatch 监控您的实例。
- 启用增强型运行状况报告和监控并为您的 Elastic Beanstalk 环境 (如 CPU 平均负载) 配置高级运行状况规则。
分析您的日志文件以排查您的内存和 CPU 问题
从您的指标中收集数据后,请尝试以下操作:
- 查看您的 Elastic Beanstalk 环境中的实例的日志文件。
- 分析密钥日志文件(如 /var/log/messages)并搜索 CPU 使用高或内存不足 (OOM) 事件的消息。
- 使用您的日志文件结果查明此进程为什么会消耗大量 CPU 或内存。
注意:例如,您可以在 Apache 访问日志或 NGINX 访问日志中找到大量请求。
如果问题持续存在,请尝试以下操作:
- 使用 SSH 连接到您的实例。
- 使用 Linux top 或 free 命令查看 CPU 和内存消耗详情。
如果您未发现任何错误,则至您的环境的流量负载可能会增加。要处理增加的流量,请尝试以下操作:
- 通过增加实例类型纵向扩展。
- 通过增加环境的 Auto Scaling 组的大小横向扩展,以降低每个实例的负载。