6

EC2についての2つの質問ELB:EC2 ELBパフォーマンスの問題

最初はJMeterテストを正しく実行する方法です。私は以下を見つけました:http://osdir.com/ml/jmeter-user.jakarta.apache.org/2010-04/msg00203.html、これは基本的には-Dsun.net.inetaddr.ttl = 0とJMeter(簡単です)を設定すると言い、2番目の点はルーティングがリクエストごとではないということです。だから、jmeterインスタンスのファームを起動する以外に、私はそれを回避する方法を見ていない。どのようなアイデアを歓迎しているのでしょうか、あるいは私は説明を間違って読んでいますか?(0120)私はHttpClientを使用していて、MultiThreadedHttpConnectionManagerを使用しています。ここでは、接続マネージャーの値をホストする大規模なルートを提供しています。そして、接続がキャッシュされているため(そして、要求がすべて同じマシンから発生しているため)、負荷分散の動作ELBを壊すかどうかは疑問です。毎回新しいHttpClientを使用するように切り替えることはできますが、すべての要求が少数のホストから発信されているという事実を回避することはできません。

Backstory:私はEC2でELBを使用してサービスをperfテストしていますが、トラフィックは均等に分散していません(ほとんどのトラフィックは1〜2ノード、ほとんどトラフィックは1ノードではなく、第4ノード)。そして、上記の問題は、私が特定した可能性のある犯人です。

答えて

1

私は非常に似たような問題がありました。 1つは、ELBがバースト負荷で十分に拡張できないことです。だからあなたがそれをテストしようとしているとき、すぐにスケールアップしているわけではありません。それが上に移動するには多くの時間がかかります。もう一つ欠点は、DNSルックアップとしてCNAMEを使用しているということです。これだけであなたを減速させます。あなたが研究できるパフォーマンス上の問題があります。

私の推奨は、haproxyを使用することです。あなたはより多くのコントロールを持っており、パフォーマンスが気に入っています。私はそれにとても満足しています。冗長サーバーをセットアップするためにハートビートを使用しています。

また、ELBでSSLを実行する予定がある場合は、パフォーマンスがパーレベルを下回っていることが分かったため、さらに苦しんでいます。

私はいくつか役立つことを願っています。 AWBは、ELBの負荷テストが実際には機能しないことを個人的に教えてくれました。大量の負荷で起動する予定がある場合は、事前に規模を調整できるように指示する必要があります。

+0

私が何をしているのかがたくさんあるとは分かりませんが、150-200 QPSのようにREST APIにはSSLはありません。私はELB自体の規模を期待していません(1 ELBが150QPSを処理できることを願っています)が、時間を掛けなくても、負荷をボックス全体に均等に分配することを期待しています。あなたはそれについてコメントできますか? – Kevin

+0

はい。私は同じ問題を抱えていました。負荷が必要な場合にのみ配布されると思います。 ELBはこれを行う際に一貫していないようです。私は再びhaproxyを見ることをお勧めします。これには、必要なものに近いラウンドロビン配信を行うオプションがあります。私はAWSサービスが本当に好きですが、ELBのブラックボックスはIMOを管理するのが難しいです。 – chantheman

+0

もう1つのことは、1つのIPからすべての負荷を送信している場合、負荷の分散に問題が発生する可能性があります。 – chantheman

1

あなたは実行しているjmeterインスタンスの数は言うことはできませんが、私の経験上、スケーリングしているAZの数の約2倍になるはずです。それでも、アンバランスな負荷が発生する可能性があります。負荷がバックエンドの艦隊全体に正確に拡大されていることは非常に珍しいことです。

jmeterインスタンスをさまざまな地域で実行すると、(ちょっと)助けてもらえます。

もう1つの要因は、テストの期間です。 ELBはスケールアップに時間がかかります - ELB名に対してnslookupを実行することによって、実行されているインスタンスの数を一般に知ることができます。スケーリングパターンを理解し、それらの周りのテストを構築する。 (したがって、別のインスタンスをELBプールに追加するのに20分かかる場合は、テストにウォームアップまで25〜30分を含めることができます)。必要に応じてAWSにELBプールを「プリ・ウォーム」させます。

ELBプールのサイズがテストに十分で、テスト実行中にプールが変更されないことを確認できる場合は、ELB IPに対して直接テストを実行することができます。

2番目の呼び出しで何が起こるのか分かりません。接続を開いて再利用している場合、明らかに閉じることなくインスタンス間で拡大縮小する方法はありません。&接続を開きます。これらのコールは、同じセットのサーバーで実行されているのですか、または別のセットで実行されていますか?内部ELBを作成し、そのエンドポイントを使用して接続することはできますが、説明したシナリオで役立つかどうかはわかりません。

関連する問題