Spring Data Jpa并发用户请求性能下降

我用Jmeter对我的应用程序进行了性能负载测试,发现我的其余一次get请求在并发用户请求负载100上的执行情况确实很差。我需要一些帮助来确定im是否做错了什么。让我对我的应用程序有一些见解。

技术堆栈 我的应用程序基于Spring Boot,Rest,Spring Data JPA,Oracle,Kubernetes(2个pod),Hikari连接池(maximumPoolSize:100,maxLifetime:30000,idleTimeout:10000)构建。对于简单的查询(查找)我 使用spring数据jpa存储库,负载测试可以在类似的延迟下正常运行,但是对于复杂的查询(搜索),我将自定义存储库与带有自动连接的PersistenceContext的querydsl一起使用,负载测试确实很糟糕。

效果结果:

单个请求 一个请求大约需要5秒钟。它是一个复杂的联接查询,可在300万条记录中进行搜索,过滤30万条记录并提取前20条记录。

Spring Data Jpa并发用户请求性能下降

多个请求 如果我的理解是正确的,则对于100个并发请求,服务器将每个请求旋转一个线程,并且所有请求应在5秒内返回响应。但是所有线程都在存储层中被阻塞,同步运行,并且对于连续请求的等待时间正在增加。

Spring Data Jpa并发用户请求性能下降

任何帮助将不胜感激,如果需要进一步的信息,请告诉我。

示例查询: 我编写了一个视图,该视图可以进行所有联接,这是我正在运行的示例查询,没有任何过滤器。

select * from variants_view order by variants_id asc fetch first 20 rows only.
jinmingh 回答:Spring Data Jpa并发用户请求性能下降

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3014888.html

大家都在问