Nginxプロキシの背後にある5つのECインスタンス(m4.4xlarge)にSpringアプリケーション(SpringBootバージョン1.3.6.RELEASEを使用)をインストールしました。すべてのインスタンスがUbuntu 14.04を実行しています。 リクエストに応答している間欠的な遅延を示すSpringアプリケーション
は、私は、アプリケーションが応答する前に示されている、私は地元のインスタンスのいずれかからAPIを照会すると、最大インスタンスさを確保するために、java -jar API-0.0.1-SNAPSHOT.jar -Xms8192m -Xmx16384m -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses
を使用して、最大4秒の断続的な遅延を実行しているアプリケーションを起動しますリクエスト。要求は、ローカルインスタンスからローカルインスタンスに起動されます。
私はDATE=$(date +"%Y%m%d%H%M%S"); echo $DATE; curl -XGET http://xxxx:9998/api/ping --header "Content-Type:application/json"
(ここでxxxxはインスタンスのプライベートIPアドレス)を実行します。 api/ping
エンドポイントは単にpongの値を返し、データベースまたはファイルシステムには触れません。
埋め込みTomcatのアクセスログには、要求処理の遅延も示されます。また、ポート上の遅延を反映して、次のように
tcpdumpが見えます。私は
- TCPv6の試してみましたが何
は私が
- net.ipv4.tcp_fin_timeoutパラメータが30
- に設定されているテストしていインスタンス上で無効になっている組み込みTomcatサーバーをしてみましょう特定のアドレスでリッスンします(*ではありません)
- Tomcatの最小スレッド数を拡張しようとしました
- は、Tomcatサーバー
APIは、私のローカルの開発マシン上で一貫して応答のタイムアウト値を増やします(もちろんそれがない!)
問題がリクエストを処理する際の断続的な遅延です。 API応答の速度は受け入れ可能なパラメータ内ですが、断続的な遅延が原因でAPI応答時間が大幅に遅延しています。
--- UPDATE 9分の20
は、私は私のローカルマシン上の問題をシミュレートするために管理しました。アプリケーションがmvn spring-boot:run
を使用して実行されている場合、APIを呼び出すときに遅延は見られません。ただし、アプリケーションがjava -jar API-0.0.1-SNAPSHOT.jar
を使用して開始されると、遅延が見られます。
ありがとうございます。私たちは、スタンドアローンのTomcatインストールの中にspring-bootアプリケーションをインストールしました –