こんにちは
多くのプロジェクトに高負荷がかかっています。 AWSで使用するクラスターはほとんどありません。 そして、まだそれらを使用する人は、配置グループを使用する必要があります。
これは何ですか
配置グループ -AWSインスタンスのクラスタータイプの論理的な関連付けにより、ネットワーク遅延を削減します。 AWSは、同じ配置グループで実行されているサーバー間で10 Gbの速度を保証します。 純粋に理論的には、これらのインスタンスは地理的に近くで実行されます。
インスタンスの通常の展開では、次の図が取得されます。
配置グループのインスタンスの開始時に、インスタンスは物理的に近いため、ネットワーク遅延で勝つことがわかります。
プレースメントグループを作成してインスタンスを実行する方法
プレースメントグループを作成し、その中にインスタンスを起動するには2つの方法があります。 すでに実行中の車は、配置グループに配置できなくなることに注意してください。
1. CLIツール
プレースメントグループを作成しましょう。
$ ec2-create-placement-group MyFirstCluster -strategy cluster
そして、10個のクラスター化されたGPUインスタンスを実行します:
$ ec2-run-instances ami-02f54a6b -n 10 --instance-type cg1.4xlarge --placement-group MyFirstCluster --group MyClusterSecurityGroup
2. AWSコンソール
プレースメントグループを作成します。
そして、10個の新しいインスタンスをグループに追加し、作成時に配置グループを選択します。
性能試験
記事は、配置グループの外部と配置グループ内のクラスターインスタンス間のネットワークパフォーマンステストがなかった場合、「ほぼ無」になります。
テスト
テストは、
Cluster Compute Quadruple Extra Large Instance (cc1.4xlarge)の2つのクラスターインスタンス間で実行されます。 デフォルトのNGINXがインストールされ、起動されます。 一方、Apache Benchツールを使用したhttpd。
フォームの行が1000回始まる:
ab -c 60 -n 4000 http://$ADDR/
その結果、1000 * 60 * 4000 =
240.000.000のリクエストがサーバーに送信
されました。 これについて平均応答時間を計算し、グループの配置がどの程度うまく機能するかについての推測を構築します。
結果
もちろん、テストが適格であるかどうかを判断することは困難ですが、それは何ですか。
サーバーの平均応答時間のグラフを次に示します(grep 'リクエストごとの時間' | grep "across"):
配置グループ内のサーバーを含むグラフは、外部よりもわずかに高速であることがわかります。
結論
EC2 / VPCでクラスター化されたインスタンスを使用する場合、配置グループを使用することが必要かつ便利です。 これにより、ネットワークの待ち時間がわずかに短縮され、長期間使用するとクラスターのパフォーマンスに大きく影響する可能性があります。
AWSは、1つの配置グループで128を超えるインスタンスを使用しないことをお勧めします。したがって、多数のサーバーがある場合は、それらを複数のグループに分割することをお勧めします。
AWSプロジェクトで配置グループを使用していますか? 興味深いパフォーマンスデータはありますか?