提问人:Naman 提问时间:11/13/2023 最后编辑:Naman 更新时间:11/14/2023 访问量:68
迁移到虚拟线程后,Spring Boot 应用程序的延迟增加
Increased latency over Spring Boot application after moving to Virtual Thread
问:
我最近迁移了部署的一个应用程序,以使用引用本文档的虚拟线程。spring-boot
JDK-21
尽管此更改后,应用程序的平均延迟(~40ms)没有太大变化,但与过去相比,第 99 个百分位数略有不同。
注 - 悬停部署时间后下图中当前周期线和上一周期线之间的间隙。
在观察 JVM 指标后,我唯一可以得出的相关性是与应用程序报告的 Blocked 和 Waiting 线程计数增加的变化有关。
我有一个明显的问题是,以我的方式使用虚拟线程是否正确。还有其他因素需要考虑吗?
此外,是什么原因导致了通过指标报告的线程状态的变化?请注意,大约在一天内,这些数字在图像中没有那么高,抖动模式。
信息 - 应用程序使用基于 .spring-boot:3.1.4
spring-framework:6.0.12
答: 暂无答案
评论
protocolHandler.setExecutor(Executors.newVirtualThreadPerTaskExecutor());
syncronized
ThreadLocal
3.2
很可能很快就会正式发布,并且将有6.1.0
和更多关于虚拟线程的工作。会等待,尝试升级以跟进我的发现。3.1.4
spring-framework:6.0.12
spring-boot:3.2
,但延迟趋势保持不变。我是否应该认为仅建议在某些应用程序中使用通过 spring boot 使用虚拟线程?