1

我们的应用程序公开了一个 JSON-RPC API,使用 Jetty 和 Google Gson 来解析/生成 JSON 代码。

远程系统打开数千个与我们的应用程序的持久 HTTP 连接,并开始以每秒约 50 个的速率发送 API 请求。我们的应用程序仅使用 CPU 生成响应(即没有磁盘或数据库访问)。我们的应用程序在 EC2 虚拟机上运行。

当我们的应用程序第一次启动时,它的典型响应时间是 1-2 毫秒,但是在几个小时的过程中,它会稳步增加,直到最终达到 80 毫秒,这对于我们的应用程序来说太慢了。这是一个以纳秒为单位显示响应时间的图表,请注意稳步增加。

API 响应时间图表(以纳秒为单位)

我使用 YourKit 分析器在启动后不久捕获 CPU 快照,然后在它明显变慢时再次捕获。问题是似乎没有一种方法可以解释减速,一切都会随着时间的推移而变慢。

线程数和内存使用量似乎也没有增加,所以我现在对减速的可能原因感到茫然。

有没有人对可能的原因有任何想法,或者关于更有效的方法来隔离问题的建议?

4

0 回答 0