连接池调优
2024-01-18 17:59:40 0 举报
AI智能生成
登录查看完整内容
proxool连接池调优
作者其他创作
大纲/内容
初始化连接池管理器,DBConnectionPoolManager
获取连接池
ConnectionPool负责创建、释放、回收连接
工作过程
程序显性获取数据库库连接时,比如getConnection时,此时proxool可能会创建连接。当无可用连接时,proxool便会即时创建一个连接,此时该连接状态为Available
当当前连接数小于最小连接数或当前可用连接数小于最小可用连接数时,便会创建新连接,并将新建的连接状态置为Available.
创建连接的2种场景
由houseKeepingTestSql参数指定测试sql
检查连接是否有效,如果测试失败,则proxool会从连接池中移除该对象,并销毁
连接sql执行时间是否超过最大activetime,超过时proxool会将其强行关闭,从pool中移除,并销毁
连接存活时间是否超过maximumConnectionLifetime
连接如何回收、销毁
proxool工作机制简述
最大连接数
默认:15
maximumConnectionCount
最小连接数,初始化时连接数
默认:5
minimumConnectionCount
在不超过最大连接数的情况下,连接池中保证的空闲连接的数量
prototypeCount
连接数量相关参数
检测连接状态的时间间隔,默认时30秒。
可以理解成线程池job定时执行时间间隔
houseKeepingSleepTime
连接活动最大时间,当一个sql执行超过该数值,连接会被关闭
要确保此值比期待响应时间要大,但是过大会导致请求阻塞
默认:5分钟
maximumActiveTime
连接创建后存活的最长时间,此值要小于服务端的wait_timeout时间
默认:4小时
maximumConnectionLifetime
线程池时间相关参数(单位:ms)
设置非交互连接(就是指那些连接池方式、非客户端方式连接的)的超时时间,默认是28800,就是8小时,超过这个时间,mysql服务器会主动切断那些已经连接的,将状态置为是sleep
mysql> show variables like '%timeout%';
查看mysql服务端设置:
常见异常
span style=\
mysql服务端(单位:s)
时间相关参数
DB连接池调优
0 条评论
回复 删除
下一页