分布式缓存服务 DCS-优化Jedis连接池:关键参数配置建议

时间:2024-10-24 19:37:38

关键参数配置建议

  • maxTotal设置建议

    想合理设置maxTotal(最大连接数)需要考虑的因素较多,如:

    • 业务希望的Redis并发量。
    • 客户端执行命令时间。
    • Redis资源,例如Redis分片数。
    • maxTotal不能超过Redis的最大连接数(查看Redis的最大连接数请参考查看或修改实例最大连接数)。
    • 资源开销,例如虽然希望控制空闲连接,但又不希望因为连接池中频繁地释放和创建连接造成不必要的开销。

    假设一次命令时间,即borrow|return resource加上Jedis执行命令(含网络耗时)的平均耗时约为1ms,一个连接的QPS大约是1s/1ms = 1000,而业务期望的单个Redis的QPS是50000(业务总的QPS/Redis分片个数),那么理论上需要的资源池大小(即MaxTotal)是50000 / 1000 = 50。

    但事实上在理论值基础上,还要预留一些资源,所以maxTotal可以比理论值大一些。这个值不是越大越好,一方面连接太多会占用客户端和服务端资源,另一方面对于Redis这种高QPS的服务器,如果出现大命令的阻塞,即使设置再大的资源池也无济于事。

support.huaweicloud.com/bestpractice-dcs/dcs_05_0009.html