shenyg 发表于 2018-11-3 08:01:55

redis cluster实际会遇到的问题

  L33
  1.fork耗时导致高并发请求延时:
  info stats 参数 last_fork_usec 最近一次fork时长
  优化:fork耗时跟redis主进程的内存有关系,一般控制redis内存在10G以内
  2.AOF阻塞问题
  fsync 超过2秒,写请求就会阻塞防止主从offset偏差太大导致数据丢失
  优化:优化硬盘写入速度
  3.主从复制延迟问题
  info replication 查询master的offset和slave的offset.但是也有slave的大于master的,这种情况需要其他解决思路
  优化:需要脚本进行监控报警
  4.主从复制风暴
  一旦多个slave挂载master 同时进行全量复制,会导致大量带宽被占用
  优化:使用树状挂载
  5.Linux内核优化 提高redis
  1) vm.overcommit_memory
  0: 检查有没有足够内存,没有的话申请内存失败
  1: 允许使用内存直到用完为止
  2: 内存地址空间不能超过swap + 50%
  如果是0的话,可能导致类似fork等操作执行失败,申请不到足够的内存空间
  cat /proc/sys/vm/overcommit_memory
  echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
  sysctl vm.overcommit_memory=1
  

2) swapiness  cat /proc/version,查看linux内核版本
  如果linux内核版本=3.5,那么swapiness设置为1,这样系统宁愿swap也不会oom killer
  echo 0 > /proc/sys/vm/swappiness
  echo vm.swapiness=0 >> /etc/sysctl.conf
  

  3) 最大打开文件句柄
  ulimit -n 10032 10032
  

  4) tcp backlog
  cat /proc/sys/net/core/somaxconn
  echo 511 > /proc/sys/net/core/somaxconn


页: [1]
查看完整版本: redis cluster实际会遇到的问题