1

このアプリケーションは JSON-RPC API を公開し、Jetty と Google Gson を使用して JSON コードを解析/生成します。

リモート システムは、アプリケーションに対して数千の永続的な HTTP 接続を開き、毎秒約 50 の速度で API 要求の送信を開始します。私たちのアプリケーションは、CPU のみを使用して応答を生成します (つまり、ディスクやデータベースへのアクセスはありません)。私たちのアプリは EC2 仮想マシンで実行されています。

アプリが最初に起動したときの典型的な応答時間は 1 ~ 2 ミリ秒ですが、数時間かけて徐々に増加し、最終的にはアプリケーションには遅すぎる 80 ミリ秒に達します。これはナノ秒単位の応答時間を示すグラフです。着実に増加していることに注意してください。

ナノ秒単位の API 応答時間のグラフ

私は YourKit プロファイラーを使用して、起動直後に CPU スナップショットをキャプチャし、後で大幅に遅くなったときに再度キャプチャしました。問題は、スローダウンを説明する方法が 1 つもないように思われることです。時間の経過とともにすべてが遅くなるだけです。

スレッド数もメモリ使用量も増えていないようで、スローダウンの原因がどこにあるのか途方に暮れています。

原因が何であるかについてのアイデア、または問題を特定するためのより効果的な方法についての提案はありますか?

4

0 に答える 0