- fork 操作
1.1 同步操作
1.2 与内存量息息相关:内存越大,耗时越长(与机器类型有关)
1.3 info:latest_fork_usec
1.4改善fork
- 优先使用物理机或者高效支持fork操作的虚拟化技术
- 控制Redis 实例最大可用内存:maxmemory
- 合理配置Linux内存分配策略:vm.overcommit_memory=1
- 降低fork 频率:例如放宽AOF重写自动触发时机,不必要的全量复制
- 子进程开销和优化
2.1 CPU
- 开销:RDB和AOF文件生成,属于CPU密集型
- 优化:不做CPU绑定,不和CPU密集型部署
2.2 内存 - 开销: fork 内存开销,copy-on-write
- 优化: echo never > /sys/kernel/mm/transparent_hugepage/enabled
2.3 硬盘 - 开销:AOF和RDB文件写入,可以结合iostat,iotop分析
- 优化:1. 不要和高硬盘负载服务部署一起:存储服务,消息队列等
no-appendfsync-on-rewrite =yes
根据写入量决定磁盘类型:例如ssd
单机多实例持久化文件目录可以考虑分盘
-
AOF阻塞
AOF阻塞定位
Redis 日志
Asynchronous AOF fsync is taking too long (disk is busy?).
Writing the AOF buffer without waiting for fsync to complete, this may slow down Redis
info Persistence