Redis 常见问题及优化

Redis 常见问题及优化

Redis  常见问题及优化

1. fork操作

fork操作耗时的问题:

  • fork是个同步操作,虽然fork同步操作是非常快的,但是如果需要同步的数据量过大,fork就会阻塞redis主进程。
  • 与内存息息相关 :内存越大,耗时越长(与机器类型相关)
  • 查询持久化执行时间: late_fork_usec

改善fork

  • 有限使用物理机或者高效支持fork 操作的虚拟化技术
  • 控制Redis实例最大可用内存 : maxmenory
  • 合理配置Linux内存分配策略:vm.overcommit_memory = 1
  • 降低fork 频率:例如放宽AOF 重写自动触发时机,不必要的全量复制

2. 进程外开销

CPU:

  • 开销:RDB 和 AOF文件生成,属于CPU密集型
  • 优化:不做CPU绑定,不和CPU 密集型部署

内存:

  • 开销:fork内存开销,copy-on-write
  • 优化:echo never > /sys/kernel/mm/transparent_hugepage/enabled

硬盘:

  • 开销:AOF和RDB文件写入,可以结合iostat, iotop分析
  • 优化 :
  1. 不要和高硬盘负载服务器一起部署,队列,存储服务等
  2. no-appendfsync-on-rewrite= yes
  3. 根据写入量决定磁盘类型:例如ssd
  4. 单机多实例持久化文件目录可以考虑分盘

3. AOF追加阻塞

Redis  常见问题及优化

Redis  常见问题及优化

127.0.0.1:6379 > info persistence

-----
aof_delayed_fsync : 100   //aof阻塞等次数  会进行 +1操作
-----

个人博客:http://blog.yanxiaolong.cn/

上一篇:[bug]使用SharpZipLib遇到中文名称乱码问题


下一篇:LeetCode 11. 盛最多水的容器(JAVA)