Redis被 bgrewriteaof阻塞的解决方法
来源:互联网 发布:c语言乘法口诀表 编辑:程序博客网 时间:2024/06/10 05:23
前段时间在现网上面部署了 多个redis节点。
因为这些redis数据不能丢失。
选择的持久化策略是 AOF.
大家用aof都有这这样的一个问题 就是aof文件要是不定期进行rewrite的话 , 就会不断的增大。
所以,对这些redis节点 进行了定期的rewrite.
和 aof相关的主要参数配置如下:
redis 127.0.0.1:6380> config get *append*
1) "appendonly"
2) "yes"
3) "no-appendfsync-on-rewrite"
4) "no"
5) "appendfsync"
6) "everysec"
redis 127.0.0.1:6380> config get *aof*
1) "auto-aof-rewrite-percentage"
2) "100"
3) "auto-aof-rewrite-min-size"
4) "67108864"
在这种配置的情况下 bgrewriteaof 时,系统会有大量的错误信息。
解决的办法:
1.修改配置文件 redis.conf
中的参数
no-appendfsync-on-rewrite 为 yes
默认值是 no
#yes : 在日志重写时,不进行命令追加操作,而只是将其放在缓冲区里,避免与命令的追加造成DISK IO上的冲突。
#no : 在日志重写时,命令追加操作照常进行
2. 动态参数的修改:
config set no-appendfsync-on-rewrite yes
no-appendfsync-on-rewrite 的解释:
在默认情况下 当aof进行重写的时候,aof的同步信息不是关闭的。
在这种情况下 。子进程rewrite在写硬盘 主进程 aof也在写硬盘。在rewrite的过程中 子进程对主进程造成了磁盘阻塞(disk io冲突),导致了报警信息的产生。
但是这个参数修改成 yes之后 ,又会有安全上的问题。
当rewrite的过程中 要是redis down掉的话 丢失的数据 就不是之前appendfsync 定下的策略。
而是整个 rewrite 过程中的所有数据。
- Redis被 bgrewriteaof阻塞的解决方法
- Redis被bgsave和bgrewriteaof阻塞的解决方法
- Redis被bgsave和bgrewriteaof阻塞的解决方法
- redis BGREWRITEAOF 重写总结
- redis 之 BGREWRITEAOF
- 美团在Redis上踩过的一些坑-2.bgrewriteaof问题
- Redis关键点(自动bgrewriteaof)
- Redis关键点(自动bgrewriteaof)
- redis-bgrewriteaof问题--持久化恢复问题
- Redis关键点(自动bgrewriteaof)
- redis crash的解决方法
- Redis的阻塞式列表解析
- Listview点击事件阻塞的解决方法l
- Selector select方法阻塞register的解决方法
- python-nfqueue线程阻塞问题的解决方法
- redis的解决方法 (Redis server went away)
- redis阻塞操作
- Runtime.getRuntime().exec() 输出流阻塞的解决方法
- epoll 的accept , read, write(重要)
- Android 2.1 源码目录结构分析
- linux 挂载 windows共享目录
- 常用日志模块
- s5pv210 audio dma分配
- Redis被 bgrewriteaof阻塞的解决方法
- CAS配置全过程
- 我们工作到底为了什么?(这篇文章很重要,强烈推荐)
- 该如何编写单片机的bootloader (1)
- 打印
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
- Android display架构分析四-msm_fb.c 函数和数据结构介绍
- 说学习
- IOS XML文件的读取与写入