探索随时间推移基于Java的Web应用程序性能下降的策略

问题描述 投票:1回答:1

我正在研究企业Java应用程序,该应用程序已经具有很多工具/框架,例如Struts,JAX-RS和Spring MVC。它包含捆绑在.war文件中的UI和REST端点。该项目在不断发展,我们正在淘汰旧的工具,力求仅使用Spring MVC / Webflux。

应用程序正在对数百万个XML / JSON记录执行搜索,并且最近搜索引擎已从Marklogic切换到Elasticsearch。

我们已经注意到,在使用量不大(在2-4个应用程序节点上高达1.7k rpm)的生产环境中,某些端点上的响应时间随着时间而增加。Elasticsearch有增长的空间,并且没有任何迹象表明存在巨大的负担。因此,当前平均响应时间超过3秒而不是常规的[[200-300毫秒。现在,我们必须像一两周那样重新启动/替换prod实例。[我试图使用async-profiler获取CPU和堆火焰图,但是由于我们拥有许多可用的功能,因此每次配置时负载配置文件都在变化,因此我无法真正比​​较图形随时间的变化。

您能为我在代码中找到适当位置的一些策略/方法提供建议吗?

我正在研究企业Java应用程序,该应用程序已经具有很多工具/框架,例如Struts,JAX-RS和Spring MVC。它包含捆绑在.war文件中的UI和REST端点....

java performance profiling async-profiler
1个回答
0
投票
发现问题。它与线程池有关。
© www.soinside.com 2019 - 2024. All rights reserved.