在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

Redis中RDB和AOF持久化模式缺陷是什么

183次阅读
没有评论

共计 2004 个字符,预计需要花费 6 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章主要介绍了 Redis 中 RDB 和 AOF 持久化模式缺陷是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。

一、RDB 持久化模式缺陷

1、问题描述:

并发 200 路,模拟不断写 Redis,持续 4 小时后,接口调用开始出现大量失败,错误信息如下:

{data :{ sendResult :null}, base :{returncode : 99999 , returndesc : 系统异常:MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.}, qrybase :{total :0, count :0, start :0}}

2、原因分析:

解读错误信息,以为是磁盘不够用引起,结果发现磁盘还剩余 42%,如下所示:

Redis 中 RDB 和 AOF 持久化模式缺陷是什么

于是根据错误信息提示开启 Redis 日志,继续压测,接口依然报错,但可从 Redis 日志信息中

Can’t save in background: fork: Cannot allocate memory

进程使用内存不当有关,查看 Redis 主进程占用内存如下:占用近 55%*4G 内存

Redis 中 RDB 和 AOF 持久化模式缺陷是什么

具体原因:Redis 在保存数据到硬盘时为了避免主进程假死,需要 Fork 一份主进程,然后在 Fork 进程内完成数据保存到硬盘的操作,如果主进程使用了 2.2GB 的内存,Fork 子进程的时候需要额外的 2.2GB,此时内存就不够了,Fork 失败,进而数据保存硬盘也失败了。

3、缓解方案(不能根本解决问题):

3.1 修改 redis.conf 文件中配置项 stop-writes-on-bgsave-error no(默认值为 yes),即当 bgsave 快照操作出错时停止写数据到磁盘,这样后面写错做均会失败,为了不影响后续写操作,故需将该项值改为 no

3.2 修改内核参数(如下 3 种方式),但需要 root 权限:

(1)编辑 /etc/sysctl.conf ,改 vm.overcommit_memory=1,然后 sysctl -p  使配置文件生效(2)sysctl vm.overcommit_memory=1(3)echo 1   /proc/sys/vm/overcommit_memory

二、AOF 持久化模式缺陷

1、问题 1 描述:

Redis 主从节点均开启 AOF 模式,并发 200 路,模拟不断写 Redis,持续 15 分钟后,接口调用开始出现大量失败,且 Redis 所在的 Linux 虚拟服务器挂起。

接口报错如下:

{data :null, base :{ returndesc : 系统异常 , returncode : 999999}, qrybase :null}
Biz(dubbo)接口报错如下:2015-06-05 11:28:28.760 [DubboServerHandler-X.X.X.X:20882-thread-173] ERROR - error while validate jedis!
redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out

原因分析:

从 dubbo 接口报错信息来看,是由于接口 API 操作 Redis 超时导致。从系统日志和 IO 监控来看,均说明上述问题是由于 IO 瓶颈(系统 IO 过于繁忙)所致,如下所示:

Redis 中 RDB 和 AOF 持久化模式缺陷是什么

Redis 中 RDB 和 AOF 持久化模式缺陷是什么

从系统日志也能看出,IO 阻塞时间超过了 120 秒,由于系统安全机制导致机器挂起。

总结

测试结果证明 AOF 模式存在最明显缺陷,即访问压力大时 IO 会成为性能瓶颈,进而导致服务不可用。

3、缓解方案(不能根本解决问题)

编辑 /etc/sysctl.conf,添加如下配置:

vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

然后 sysctl -p 使配置文件生效。

问题 2 描述:

无论采用 AOF 模式还是 RDB(快照模式),当两文件(.aof 或.rdb)大小超过系统内存 80%,Redis 进程会被系统 Kill 掉,导致服务不可用。

上述问题说明我们在使用 Redis 时需要事先做好系统内存的容量规划,因为一旦 Redis 宕掉会导致大量数据丢失且是不可恢复的。

感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“Redis 中 RDB 和 AOF 持久化模式缺陷是什么”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计2004字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 99久久99热精品免费观看国产 | 综合自拍亚洲综合图不卡区 | 久久高清一区二区三区 | 四虎免费影院4hu永久免费 | 免费大香伊蕉在人线国产 | 欧美日韩激情一区二区三区 | 青青亚洲| 亚洲一卡2卡三卡4卡无卡下载 | 国产精品自在在线午夜出白浆 | a亚洲视频 | 欧洲美熟女乱又伦 | www.一区二区 | 欧美精品国产精品 | 亚洲人成人77777网站 | 精品福利视频在线观看视频 | 思思久久99热这里只有精品66 | 色香欲综合成人免费视频 | 国产成人精品免费视频大全软件 | 免费爱爱的视频太爽了 | 日日夜夜婷婷 | 国产精品无码2021在线观看 | 99久久香蕉 | 三级网站在线免费观看 | 手机在线免费观看毛片 | 国产精品久久久爽爽爽麻豆色哟哟 | 日本视频在线免费播放 | 自拍偷在线精品自拍偷无码专区 | 亚洲国产成人精品无码区在线播放 | 欧美成a人片在线观看久 | 我要看免费的毛片 | 猫咪免费人成网站在线观看 | 成人精品视频在线观看 | 伊人久久综合成人亚洲 | 中国少妇内射xxxhd免费 | 免费看成人国产一区二区三区 | 国精品人妻无码一区二区三区喝尿 | 999久久久精品国产消防器材 | 亚洲成 人a影院青久在线观看 | 国产精品亚洲五月天高清 | 综合精品一区 | 太粗太深了太紧太爽了动态图男男 |