一次redis调优——连接池优化

时间:2024-04-01 19:41:45

redis链接池优化

现象

一次redis调优——连接池优化
现象很明显,新建连接数很高,但是每秒的链接数却不高。我们知道链接的建立是很耗性能的,所以优化的目标是降低新建链接数。
我们明明用了链接池了,为什么还会有这么多新建的链接呢?
看看当前链接池的配置:

参数 说明
MinEvictableIdleTimeMillis 60000 逐出连接的最小空闲时间
NumTestsPerEvictionRun -1 每次逐出检查时 逐出的最大数目
MinIdlePerKey 0 每个key的最小空闲连接数
MaxIdlePerKey 8 每个key的最大空闲连接数
MaxTotalPerKey 140 每个key的最大连接数

我们看到 每个key的最大空闲连接数 这个配置项的值为8 即当空闲链接超过8时,会强制销毁一些链接。这可能是导致问题的原因。我们适当加大一下参数的值

参数 说明
MinEvictableIdleTimeMillis 60000 逐出连接的最小空闲时间
NumTestsPerEvictionRun -1 每次逐出检查时 逐出的最大数目
MinIdlePerKey 0 每个key的最小空闲连接数
MaxIdlePerKey 20 每个key的最大空闲连接数
MaxTotalPerKey 140 每个key的最大连接数

结果如下:
一次redis调优——连接池优化
可以看到新建连接数有了明显的下降,但是还没有达到预期,接着加大值

参数 说明
MinEvictableIdleTimeMillis 60000 逐出连接的最小空闲时间
NumTestsPerEvictionRun -1 每次逐出检查时 逐出的最大数目
MinIdlePerKey 0 每个key的最小空闲连接数
MaxIdlePerKey 40 每个key的最大空闲连接数
MaxTotalPerKey 140 每个key的最大连接数

一次redis调优——连接池优化
如图 基本解决了问题
可见根据情况适当调整一下连接池的参数是很有必要的