2016-09-19 55 views
0

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のアクセスログには、要求処理の遅延も示されます。また、ポート上の遅延を反映して、次のように

access log

tcpdumpが見えます。私は

  • TCPv6の試してみましたが何

    tcpdump

    は私が

  • 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を使用して開始されると、遅延が見られます。

答えて

0

私はスプリングブートサービスでこれを実行しました。

高遅延が発生した時点までログを読み込んで、tomcat-embed-jasperをバージョン8.0.26からバージョン8.0.36に更新した瞬間までログを絞りました。

私はあなたにその理由を正確に伝えることはできませんが、私たちがロールバックしたとき、私たちの遅れはすぐに消えました。

+0

ありがとうございます。私たちは、スタンドアローンのTomcatインストールの中にspring-bootアプリケーションをインストールしました –

関連する問題