AWS EC2 t2.micro 盒子发送 503 错误
Posted
技术标签:
【中文标题】AWS EC2 t2.micro 盒子发送 503 错误【英文标题】:AWS EC2 t2.micro boxes sending 503 error 【发布时间】:2016-03-31 00:26:15 【问题描述】:我有一个在通过 ElasticBeanStalk 配置的 t2.micro 盒子上运行的服务。每个盒子上的请求数大约为 100ps,平均响应时间在 100ms 以下。
在高流量期间,一些 http 请求失败并出现 503 错误。
在 cloudwatch 中监控服务时会出现很多这样的峰值。由于错误列在 HTTP 5xxs 而不是 ELB 5xxs (http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/elb-cloudwatch-metrics.html) 下,因此从框中删除了流量。这导致我测试盒子上的访问日志。在检查 httpd 访问日志时,我看到很多 503 错误,但在 tomcat 的访问日志中没有一个 503 错误。
有什么办法可以解决这个问题吗?
【问题讨论】:
发生这种情况时,这些服务器上的 CPU 积分是什么样的? 似乎错误出现在 Web 服务器端。你能检查一下httpd服务器加载的静态文件(css、js、图像)是否正确渲染,包括从cdn加载的文件吗? 这通常意味着Tomcat没有足够快地响应Apache。超时可能是 30-60 秒。您可能已经超出了微型实例的容量。一旦积分用完,它们的可用 CPU 资源就会显着下降。 @harshavmb 我没有我提到的服务的任何静态文件。 【参考方案1】:所有 t2 实例都被认为是可突发的。他们使用信用模型。在空闲时,他们会累积积分(最高上限),而在活动时,他们会使用积分。
一旦它们达到 0,它们就会被限制为非常少的 CPU 资源。
这个错误是由 apache 产生的,因为它等待 Tomcat 超时。可能是由于上述原因。您可以检查您的实例信用等级来确认这一点。
【讨论】:
这些盒子上的平均信用余额一直超过 50。所以我不确定这是否是问题所在。 之前我刚刚监控了过去半个小时。在一段时间内深入研究多天后,我的最低信用余额将为零,因此这可能是一个问题。以上是关于AWS EC2 t2.micro 盒子发送 503 错误的主要内容,如果未能解决你的问题,请参考以下文章
从 t1.micro 迁移到 t2.micro 亚马逊 AWS
如何使用超时设置解决 AWS ELB/EC2 HTTP 503?