Redis线上连接超时排查问题方向

一 redis节点收到外部的影响

  • 1 是否受到其他密集型cpu服务的影响

建议:
1 不要于其他cpu密集型服务混一起部署
2 同类型的redis服务,不同的业务应用进行资源隔离部署
3 配置redis服务的cpu绑定。降低cpu上下文切换带来的性能消耗。但是也有有一个问题:redis持久化进程是一个非常耗资源的过程,这种自竞争也会引发redis服务的不稳定。

  • 2 内存不够用,开始向磁盘swap。

1 排查内存使用 情况:info memory 碎片率小于1。 这也是监控redis服务稳定性的一个指标
2 查看redis进程 info server:找到redis的pid,然后

cat /proc/"pid"/smaps // 确定交换量为0kb或者4kb
  • 3 redis的maxmemory设置

对redis服务进行必要的内存上限设置,进行内存隔离。

  • 4 网络问题

1 带宽不够
2 系统连接数用完了
3 端口TCP backlog队列满了
4 网络延迟

二 redis服务本身

  • 1 慢查询

1 key 长度设置是否合理
2 值类型选择是否合理
3 是够能批量查询

  • 2 redis服务运行状况
redis-cli -h {host} -p {port} -- stat // 查看连接数,key总数。阻塞数等 
  • 3 持久化的影响

1 redis进行持久化操作需要fork出子进程,如果时间过长,会产生一定的影响 。可以通过命令:info stats 查看last_fork_usec:666 来找对应的数据,单位毫秒,不应该超过一秒。
2 AOF刷盘阻塞
AOF持久化开启后,后台每秒进行AOF文件刷盘操作,系统fsync到磁盘,如果主线程发现距离上次成功fsync超过2s,就会阻塞后台线程等待fsync完成以保证数据的安全性。

你可能感兴趣的:(Redis线上连接超时排查问题方向)