记一次因Druid数据库连接池配置引起的问题

阿里开源的数据库连接池Druid想必大家都听说过或者用过,最近公司有个项目用到了这个连接池,但是由于连接池配置不正确,导致连接池最大连接数采用了默认值,导致了应用响应慢以及响应大量超时的问题,以下记录阐述该问题:
1.应用的同事告知,应用部署上线后,对应用进行请求测试,测试发现,对于用户的请求,响应非常的慢,甚至出现长时间无响应的情况。
2.于是通过之于应用中的调用链工具,发现应用均请求超时而失败:
在这里插入图片描述
3.同时观测到应用使用的服务器中,Tomcat线程数达到了配置的最大值在这里插入图片描述
4.通过初步分析,以为是服务器性能问题,导致服务器中存在大量等待线程,从而导致响应失败和超时,但是通过查看服务器CPU,内存,JVM资源使用情况,均为出现性能瓶颈。
5.通过jstack工具观察应用线程情况,发现又大量线程处于waiting状态,于是将问题定位到数据库连接池上。
在这里插入图片描述
6.走到这步,初步认为是因为数据库连接池不够用导致大量线程等待,于是让负责应用的同学将Druid自带的监控页面打开,发现初始化连接数和最大连接数均采用默认配置。
在这里插入图片描述
7.应用同学将程序进行重新配置,发布后,未出现响应慢和超时的问题,原来在Springboot中,需要将连接池信息配置到druid下一层级。
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章