redis出现Lettuce/HGETALL,系统访问卡顿

一、访问卡顿

目前通过skywalking发现,redis出现大量的Lettuce/HGETALL访问,导致系统访问奇慢。


image.png

二、分析

查询redis的cpu水位压力,在4%,相当于没有压力。

怀疑没有流量进入,是不是客户端的请求都被拦着了?

看下服务中开放的redis的连接池情况:

   lettuce:
      cluster:
        refresh:
          adaptive: true
        period: 20
      pool:
        # 连接池中的最小空闲连接
        min-idle: 5
        # 连接池中的最大空闲连接
        max-idle: 10
        # 连接池的最大数据库连接数
        max-active: 20
        # #连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: 2000ms
        testOnCreate: true
        testOnBorrow: true
        testOnReturn: true
        testWhileIdle: true

最大连接数,只允许20个链接,如果超过这个请求,需要等待。
看了下目前redis链接请求为154个


image.png

三、解决问题

这时就在想,是不是服务开放出去的redis链接太少了,导致等待。试着调大一下连接数 max-active。为了不超过redis的最大承载能力,我们查看了redis的最大连接数是60000个,这是后可以大胆的去扩大了。

    lettuce:
      cluster:
        refresh:
          adaptive: true
        period: 20
      pool:
        # 连接池中的最小空闲连接
        min-idle: 50
        # 连接池中的最大空闲连接
        max-idle: 50
        # 连接池的最大数据库连接数
        max-active: 500
        # #连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: 2000ms
        testOnCreate: true
        testOnBorrow: true
        testOnReturn: true
        testWhileIdle: true

于是我们把连接数扩大到了500,完美解决问题,系统快的飞起,完美解决。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容