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=1linux

2) swapiness
    cat /proc/version,查看linux内核版本
        若是linux内核版本<3.5,那么swapiness设置为0,这样系统宁愿swap也不会oom killer(杀掉进程)
        若是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
相关文章
相关标签/搜索