前言
在使用druid连接池后,show full processlist 后发现有大量sleep状态的链接,高峰期时达到1000多个,项目框架用的springmvc+mybatis,由spring管理的链接在每次数据库操作后应该是释放连接的,排除是代码泄露连接的可能性。
druid配置
然后看了下线上项目中druid的配置信息
编辑切换为居中
添加图片注释,不超过 140 字(可选)
minIdle=30, 最小连接池数量是30个, maxActive=300,最大并发数是300, minEvictableIdleTimeMillis=300000 连接在池中最小生存的时间是300秒 timeBetweenEvictionRunsMillis=120000检测需要关闭的空闲连接,是120秒。
看这个配置,原来的理解是一个德鲁伊连接池内最多有300个连接,空闲超过120秒的链接会由德鲁伊去关闭。
然后在本地的项目中,将相应的参数改小,起了100个线程去访问数据库,每个线程中的事务中sleep 3秒,