SQL Server 为什么我有很多光连接在等待?如何排除故障?

nnt7mjpx  于 2022-11-21  发布在  其他
关注(0)|答案(1)|浏览(182)

我有很多光的连接。我们显然没有正确使用光,但我们不知道找出这些连接使用的确切位置。
我的日志如下所示:

30-01-2020 10:23:51.030 [HikariPool-1 housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool.logPoolState - HikariPool-1 - Pool stats (total=10, active=10, idle=0, waiting=46)   
    30-01-2020 10:23:44.947 [HikariPool-1 housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool.logPoolState - HikariPool-1 - Pool stats (total=10, active=10, idle=0, waiting=46)   
    30-01-2020 10:23:44.770 [HikariPool-1 housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool.logPoolState - HikariPool-1 - Pool stats (total=10, active=10, idle=0, waiting=37)   
    30-01-2020 10:23:43.826 [HikariPool-1 housekeeper] DEBUG com.zaxxer.hikari.pool.HikariPool.logPoolState - HikariPool-1 - Pool stats (total=10, active=10, idle=0, waiting=40)

我们如何了解更多信息?如何排除故障?
我们已经安装了Hibernate,Azure中的k8s和MS SQL Server。我们继承了这个应用程序:(

hi3rlvi2

hi3rlvi21#

如果这可能有帮助的话,我最近正面临这个问题,它给了我一段坚韧的时光。
服务器接受了太多hikari池无法处理的请求,因此hikari尝试获得额外的连接来满足这一需求高峰。
例如,对于有200个默认线程的tomcat,如果maxPoolSize = 10,在高峰请求时,服务器将尝试同时服务200个线程。如果池中的连接忙碌,hikari将尝试获得190个连接,这就是您在等待中看到的。
这是我的管理方式。
我确保了tomcat线程不会超过hikari maxPoolSize的数量,这样在spike期间就不需要请求更多的连接了。
在Spring Boot 中,这是我使用的配置。

server.tomcat.threads.max = 50
spring.datasource.hikari.maximumPoolSize = 50

注意:50是可变的,具体取决于服务器容量

相关问题