查看redis日志:
发现频繁报下面错误
1285:M 07 Jan 15:10:51.405 * Starting automatic rewriting of AOF on 8959% growth
1285:M 07 Jan 15:10:51.405 # Can't rewrite append only file in background: fork: Cannot allocate memory
1285:M 07 Jan 15:10:51.506 * Starting automatic rewriting of AOF on 8959% growth
1285:M 07 Jan 15:10:51.506 # Can't rewrite append only file in background: fork: Cannot allocate memory
1285:M 07 Jan 15:10:51.606 * Starting automatic rewriting of AOF on 8959% growth
1285:M 07 Jan 15:10:51.607 # Can't rewrite append only file in background: fork: Cannot allocate memory
1285:M 07 Jan 15:10:51.708 * Starting automatic rewriting of AOF on 8959% growth
1285:M 07 Jan 15:10:51.708 # Can't rewrite append only file in background: fork: Cannot allocate memory
1285:M 07 Jan 15:10:51.809 * Starting automatic rewriting of AOF on 8959% growth
1285:M 07 Jan 15:10:51.809 # Can't rewrite append only file in background: fork: Cannot allocate memory
1285:M 07 Jan 15:10:51.909 * Starting automatic rewriting of AOF on 8959% growth
1285:M 07 Jan 15:10:51.909 # Can't rewrite append only file in background: fork: Cannot allocate memory
- 直接修改内核参数 vm.overcommit_memory = 1
- Redis建议把这个值设置为1, 是为了让fork操作能够在低内存下也执行成功
- Redis设置合理的maxmemory, 保证机器有20%~30%的闲置内存。
- 集中化管理AOF重写和RDB的bgsave。·设置vm.overcommit_memory=1, 防止极端情况下会造成fork失败。