サーバーのパフォーマンスをテストする小さなプログラムを作成しました。プログラムは毎秒 100 件のリクエストをサーバーに送信し、応答を受信するまでの時間を測定します。テスト プログラムは Java で記述され、すべての要求は個別のスレッドによって処理されます。リクエストには番号が付けられています。その番号はサーバーによって跳ね返されるため、クライアント プログラムはどの要求が応答されたかを認識します。問題は、私が得ている結果がいたるところにあるということです。返信に 1 秒かかることもあれば、3 秒かかることもあれば、10 秒かかることもあります。これはなぜでしょうか?また、何か間違ったことをしている場合、サーバーをテストするためのより良い方法は何ですか?
詳細については、編集してください。サーバーは Amazon Elastic Beanstalk アプリケーションです。5 つの EC2 インスタンスのクラスターで動作します。リクエストで受信した数を含むレスポンスを送信する前に、いくつかのループを行う単純なプログラムを実行します。クライアントは、送信されるすべてのリクエストの時間を計測し、対応する応答を受信するまでの時間と比較します。
EDIT 2 テストは 30 分間実行され、出力は実行されたすべての時間の平均です。リクエスト間で非常に異なる結果が得られますが、個々の平均の間にもかなり大きな違いがあります。