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设置为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