如何排查使用 Classic Load Balancer 时返回的 503 错误?

上次更新时间:2018 年 2 月 27 日

我在 Classic Load Balancer 访问日志、CloudWatch 指标中,或在浏览器或客户端中点击负载均衡器的 DNS 名称时看到 HTTP 503 错误。如何解决此问题?

简短描述

确保满足以下条件:在 Classic Load Balancer 被配置为将提供响应的每个可用区注册了后端实例,已注册的后端实例能够通过运行状况检查,并且能够适当扩展以处理应用程序所需的负载。

解决方法

要查看负载均衡器之后的正常后端实例的数量,请在 CloudWatch 中检查 HealthyHostCount 和 UnHealthyHostCount 指标。如果 CloudWatch 指标显示没有正常主机或有一个或多个不正常主机,您可以做如下检查以排查问题:

确保后端实例能够响应运行状况检查

如果后端实例看似运行正常,但 UnhealthyHostCount 指标显示您有一个或多个不正常实例,请确保负载均衡器能够响应运行状况检查请求。对于 HTTP/HTTPS 运行状况检查,请确保负载均衡器能够从后端收到 200 响应代码。对于第 4 层运行状况检查,如果实例成功完成了 TCP 握手,则负载均衡器会将实例标记为正常。有关说明,请参阅 Classic Load Balancer 问题排查:运行状况检查

确保负载均衡器和后端实例能够处理负载

检查负载均衡器和后端实例,确保它们能够处理 CPU 使用率、内存、磁盘使用率和应用程序需要的连接数量

例如,检查 SpilloverCount 和 SurgeQueueLength CloudWatch 指标。如果 SurgeQueueLength 达到或接近 1024 个排队请求的最大值,或 SpilloverCount 为非零数值,则说明后端的请求处理速度跟不上请求传入速度,或根本无法处理请求。

另请检查后端实例的 CPUUtilization CloudWatch 指标 – 如果发现 CPU 利用率达到 100% 或长时间保持高利用率,请考虑添加更多后端实例,或增大当前实例大小。有关检查其他值(如内存和磁盘使用情况)的说明,请查阅实例供应商文档。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?