redis因AOF追加磁盘阻塞发生故障转移-创新互联
追加AOF时磁盘繁忙
创新互联从2013年成立,是专业互联网技术服务公司,拥有项目网站制作、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元政和做网站,已为上家服务,为政和各地企业和个人服务,联系电话:18980820575redis 错误日志截图
下图为AOF工作流程图
AOF工作流程图
1.所有的写入命令会追加aof_buf(缓冲区中)。
2.AOF缓冲区根据对应的策略向硬盘做同步操作。
3.随着AOF文件越来越大,需要定期对AOF文件进行重写,达成压缩的目的(对一个key跟新100次会有100条记录, 重写后只留最后一条).
4.当redis服务器重启时,可以加载AOF文件进行数据恢复。
原主数据库追加aof阻塞
ip地址 原主库追加阻塞次数.
aof_delayed_fsync:154
使用everysec(每秒)刷盘策略的流程图
1.主线程负责AOF缓冲区
2.AOF线程负责每秒一次同步磁盘操作,并记录最近一次同步时间.
3.主线程对比AOF同步时间:
3.1如果距离上次同步时间在两秒内,主线程直接返回。
3.2如果距离上次同步时间超过两秒(意识是现在还在同步),主线程将会被阻塞, 直到同步完成。
整个集群的其他主库阻塞次数统计
15台主库的AOF 在SYNC的时候因磁盘繁忙,
追加AOF时阻塞次数,其中有11台主库被阻塞过,
aof_delayed_fsync阻塞次数.
ip1
# Persistence
aof_delayed_fsync:1
ip2
# Persistence
aof_delayed_fsync:18
ip3
# Persistence
aof_delayed_fsync:0
ip4
# Persistence
aof_delayed_fsync:1
解决方案
1.打开no-appendfsync-on-rewrite参数, 默认关闭,表示AOF重写期间不做sync操作, 并不能根本解决问题, 因为故障转移前没有发生AOF重写。
2.关闭AOF, 如果一组(主-从) 同时宕机, 会丢失5分钟数据,启动redis时如果没有发现AOF文件,redis 会选择RDB来恢复数据,rdb copy-on-write到磁盘的频率5分钟一次。
3.提升磁盘写入速度。
重启加载流程图
RDB 物化到磁盘频率图
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站题目:redis因AOF追加磁盘阻塞发生故障转移-创新互联
新闻来源:http://scjbc.cn/article/cdsojg.html