REST API をテストするために使用している一連の Locust テストがあります。
これらの Locust テストは、EC2 インスタンスで実行するとパフォーマンスが非常に低下します。
1 つの VM を Locust マスターとして、1 つの VM を Locust スレーブとして使用して、Vagrant VM 環境内でテストを開発しました。
テストを微調整する努力をしなくても、私の Vagrant 開発環境は最大 200 人のユーザーを実行し、50 rps を生成できます。
しかし、EC2 でまったく同じ Locust テストを実行し、まったく同じ API ホストにヒットすると、パフォーマンスはひどいものになります。
C3.large インスタンスをマスターとして使用し、C3.2xlarge インスタンスをスレーブとして使用する例:
300 ユーザーを指定すると、Locust は指定されたスポーン レートで 100 程度のユーザーを生成し、新しいユーザーを非常にゆっくりと追加するだけです。通常、実際に 300 人のユーザーが作成されないところまで速度が低下します。せいぜい 5 ~ 8 rps です。
パフォーマンスの不一致をどこから探し始めればよいかわかりません。Locust のマスターですか、それともスレーブですか? EC2特有のものですか?