-1

us-west-2a AZ に Ubuntu 環境の c3.2xlarge EC2 マシンが 2 台あります。どちらにも、AWS RDS (db.r3.2xlarge) の mySQL データベースと同じコードが含まれています。両方のインスタンスが ELB に追加されます。両方とも、1 日に 2 回実行される 1 つの cron がスケジュールされています。

ELB は、しきい値が 5.0 を超えるとアラームが発生するように構成されています。両方のインスタンスの CPU 使用率は平均 30 ~ 50 です。ピーク時には 1 ~ 2 分間 100% に達し、その後通常に戻ります。しかし、ELB は常に 1 日に 3 回アラームを発します。この時点で、両方のインスタンスが

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/によると、インスタンスに問題は何も見つかりませんでした。しかし、それでもレイテンシーはピークに達し、両方のインスタンスが応答しません。

これまでは、ロード バランサーからインスタンスの 1 つを削除し、Apache を再起動してからロードし直し、他のインスタンスについても同じことを行っていました。これで問題なく動作し、インスタンスと ELB は次の 6 ~ 10 時間正常に動作します。しかし、これは受け入れられません。なぜなら、毎日 2 回または 3 回、サーバーを処理しなければならず、サーバーを再起動する必要があるからです。

何か問題があるか、この問題を解決するために講じる必要がある手順があるかどうかを知る必要があります。

レイテンシー

4

1 に答える 1

0

あなたの質問から: ELB アラームが監視しているものは明確ではありません。5.0 500秒?

CPU が 100% に急上昇すると、ロード バランサーの背後にあるサービスの応答が遅くなる、または応答しないということが起こると思います。アラートがトリガーされます。

さらに悪いことに、インスタンスの 1 つだけが失敗した場合 (cron ジョブが同時に実行されないと仮定)、ELB はインスタンスをサービスから外し、他のインスタンスがすべてのトラフィックを取得します。1 つのインスタンスがすべてのトラフィックを処理できない場合、これは、2 番目のインスタンスが失敗し、アラートもトリガーされることを意味します。

サービスと同じマシンで cron ジョブを実行する必要があるのはなぜですか? これをこれらのマシンから移動することはオプションですか? また、ELBヘルスチェックのタイムアウトを増やすことはオプションですか?

于 2016-03-07T18:09:48.757 に答える