2016-03-07 229 views
-1

我有两台c3.2xlarge EC2机器,Ubuntu环境都在us-west-2a AZ。两者都包含与AWS RDS(db.r3.2xlarge)中的mySQL数据库相同的代码。这两个实例都被添加到ELB中。两者都有一个计划,一天运行两次。AWS ELB延迟问题

当阈值超过5.0时,ELB被配置为发出警报。两个实例的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

回答

0

从你的问题:目前还不清楚是什么ELB报警监控。 5.0 500s?

我猜的是当CPU达到100%时,位于负载平衡器后面的服务响应缓慢/没有响应。警报被触发。

更糟糕的是,如果只有一个实例失败(假设cron作业不会同时运行),ELB将使该实例停止服务,另一个实例将获取所有流量。如果一个实例无法接受所有流量,这意味着您将有第二个实例失败并触发警报。

为什么您需要在服务器所在的机器上运行cron作业?是否将这些机器从这些机器上移除?另外:是否增加ELB健康检查超时选项?

+0

感谢您的回复... 1. ELB alarm - 5000s | 2.警报警报|时,两个实例的CPU利用率平均为50% 3.我认为cron计划只运行两次,并且不需要太多资源,因为一些10-20更新查询和一些文件写入操作在10秒内完成。我提到确保除此之外没有任何cron正在运行。 – Thamilan

+0

你正在收到什么500? (错误?)这是在这里失败的应用程序?您是否为负载平衡器和运行在EC2实例上的应用程序设置了日志? – Mircea

+0

5000s是平均延迟(毫秒)。是的应用程序运行在EC2实例 - c3.2xlarge – Thamilan