使用Jedis连接池导致Redis连接无限增长问题

1. Redis Server 配置检查 : redis.cnf ,确定 Redis配置无问题

  • timeout :配置连接空闲1800秒(半小时)后释放
  • tcp-keepalive : ack心跳,60秒检测连接是否还存在,存在则继续连接,如果不存在就释放。

2. Jedis连接池配置(Jedis依赖3.9.0)

  • MAX_ACTIVE : 64
  • MAX_IDEL : 16
  • MIN_IDEL : 8

3. 测试用例

Jmeter 500线程,get/set/hget/hset 基本使用,持续一周

4. 测试结果

Jedis 连接池配置 : maxTotal 64, 服务配置最大连接数1w,结果增长到 7k,马上溢出

  • 检查客户端连接情况 info clients

        

  •  检查测试Java进程端口情况 netstat -nap | grep 3360(进程号) | grep .174:6379

  • 检查进程链接详情

  • Java进程Debug输出情况

输出代码:

jedisShardedPool.getNumActive()
jedisShardedPool.getNumIdle()
jedisShardedPool.getNumWaiters()

5. 结论

持续排查问题点,确定连接持续增长的原因

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值