1、fork操作
(1)同步操作
(2)与内存有关:内存越大,耗时越长(与机器有关)
(3)info:latest_fork_usec
2、改善fork
(1)优先使用物理机或者高效支持fork操作的虚拟机
(2)控制redis实例最大可用内存:maxmemory
(3)合理配置linux内存分配策略:vm.overcommit_memory=1
(4)降低fork频率:例如放宽AOF重写自动触发时机,不必要的全量复制
3、子进程开销和优化
CPU:
开销:RDB和AOF文件生成,属于cpu密集型
优化:不做cpu绑定,不和cpu密集型部署
内存:
开销:fork内存开销,copy-on-write
优化:echo never >/sys/kernel/mm/transparent_hugepage/enabled
硬盘
开销:AOF和RDB文件写入,可以结合iostat,iotop分析
优化:不要和高硬盘负载服务部署在一起
no-appendfsync-on-rewrite=yes
根据写入量决定磁盘类型,例如ssd
单机多实例持久化目录可以考虑分盘
4、AOF追加阻塞
redis日志描述,进行定位: