如何排除 ELB 中的经典负载均衡器容量问题?
上次更新日期:2022 年 9 月 15 日
我的经典负载均衡器的 Amazon CloudWatch 指标 SurgeQueueLength 最大统计数据增加。当客户端尝试连接到我的经典负载均衡器时,客户端会收到 HTTP 503 Service Unavailable 或 HTTP 504 Gateway Timeout 错误消息。如何排查这些弹性负载均衡容量问题?
简短描述
经典负载均衡器指标 SurgeQueueLength 测量由您的经典负载均衡器排队的请求总数。SurgeQueueLength 的最大统计信息增加表示后端系统无法像收到请求一样快速处理传入请求。较高 SurgeQueueLength 指标的可能原因包括:
- 经典负载均衡器背后的过载 Amazon Elastic Compute Cloud(Amazon EC2)实例无法处理所有传入请求
- 由于外部资源性能问题导致的应用程序依赖性问题
- 实例允许的最大连接限制
当请求超过最大 SurgeQueueLength 时,SpilloverCount 指标将开始测量被拒绝的请求。SurgeQueueLength 最大值为 1024。
解决方法
- 使用 Classic Load Balancer 配置 Auto Scaling 组,以便根据需要扩展实例。
- 配置 CloudWatch 以监控您的经典负载均衡器。
- 对经典负载均衡器后面的实例开启详细监控,以监控 CPUUtilization 指标。您还可以获取特定实例的统计数据。如果 CPU 利用率达到峰值,则您的实例在处理现有请求时太忙,无法接受新请求。考虑扩展实例或扩展到具有更大处理能力的实例类型。
- 对 Classic Load Balancer 的 HTTP 错误进行故障排除。与负载相关的问题通常会返回 503 或 504 HTTP 错误。
- 如果您的 Amazon EC2 实例运行 Apache,则请参阅如何优化 Apache Web 服务器的内存分配以防止 EC2 Linux 实例出现内存不足错误?
- 对于与正常流量随时间推移而增加相关的性能问题,请考虑增加实例容量。