连接池打满,导致页面夯住

连接池打满,导致页面夯住

1、背景生产环境中访问系统,页面延迟卡顿

在这里插入图片描述

2、排产思路

1)、查看日志是排查问题的第一要素(个人认为);查看日志发现使用com.alibaba.druid.pool设置最大连接数为100,已经被打满;既然100连接相对较小,将连接数扩大到1000,重启项目后访问页面流畅的运行中,到此解决问题。。。
大概又过了一天再来访问,又报连接池最大连接数已使用完。。。
在这里插入图片描述
2)、使用jps、jstack打印线程栈或者使用java监视工具,发现线程一直在等待锁的释放
在这里插入图片描述
进一步查看资源拥有者后
在这里插入图片描述
发现线程一直卡在logback打印日志上获取不到资源
在这里插入图片描述
查看源代码发现,log日志在写入时会将数据锁住,也就是日志并不是并发打印,结合打印的代码,获取第三方资源时将返回的数据都丢到log中、且发现在生产环境中使用mybatis也放开打印了sql执行数据,这将会对系统造成灾难性的压力
在这里插入图片描述
总结:日志是查看问题的标准,当日志使用不规范时也会对系统造成压力过大,定义一个好的日志规范是一个公司必不可少的;当然页面夯住的问题还有其它很多情况,比如出现死循环了,导致jvm不停的在进行垃圾回收也是会出现夯住的问题,具体问题还得具体排查

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值