AWS ELB延迟问题

时间:2016-03-07 17:46:54

标签: amazon-web-services amazon-ec2 amazon-elb aws-rds

我有两台c3.2xlarge EC2机器,Ubuntu环境都在us-west-2a AZ。两者都包含来自AWS RDS(db.r3.2xlarge)的mySQL数据库的相同代码。两个实例都添加到ELB中。两者都安排了一个cron,一天运行两次。

ELB已配置为在阈值超过5.0时发出警报。两个实例的CPU利用率平均为30-50。在高峰时间达到100%,持续一两分钟,然后恢复正常。但ELB每天不断提高三次警报。此时,两个实例都有

CPU     - ~50%
Memory  - total - 14979
          used  - ~6000
          free  - ~9000
RDS CPU - ~30%
          Connections - 200 to 300 /5,000

根据这个https://aws.amazon.com/premiumsupport/knowledge-center/elb-latency-troubleshooting/,我发现实例没有错。但仍有延迟达到峰值,两个实例都无法响应。

直到现在,我只是从负载均衡器中删除其中一个实例,重新启动apache然后将其加载回来并为其他实例执行相同的操作。这使得工作完美无缺,实例和ELB在接下来的6-10小时内工作良好。但这是不可接受的,因为每天必须两次或三次必须照顾服务器,需要重启。

我需要知道,如果出现任何问题或采取任何措施来解决此问题。

Latency

1 个答案:

答案 0 :(得分:0)

从您的问题:ELB警报监控的内容尚不清楚。 5.0 500s?

我猜测的是,当CPU加速到100%时,负载均衡器后面的服务响应慢/没响应。警报被触发。

更糟糕的是,如果其中一个实例失败(假设cron作业不同时运行),ELB将使实例退出服务而另一个实例将占用所有流量。如果一个实例无法获取所有流量,这意味着您将使第二个实例失败+同时触发警报。

为什么需要在与服务相同的计算机上运行cron作业?是否可以选择这些机器?另外:增加ELB健康检查超时是一种选择吗?