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

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

201次阅读
没有评论

共计 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字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产精品亚洲日韩欧美色窝窝色欲 | 亚洲一区 日韩精品 中文字幕 | 久久亚洲精品久久国产一区二区 | 亚洲av午夜精品一区二区三区 | 日本欧美一区二区三区高清 | 人人色在线视频播放 | 国产精品一区二区三区免费视频 | jiucao在线看片www| 精品久久久久久久九九九精品 | 国产精品国产三级在线... | 免费观看激色视频网站 | 在线中文字幕日韩 | 一级a毛片免费 | 欧美影院一区 | 精品综合久久久久久88小说 | 8av国产精品爽爽ⅴa在线观看 | 亚洲成在 | 欧美一区二区三区免费视频 | 亚洲春色综合另类网蜜桃 | 亚洲av永久纯肉无码精品动漫 | www.四虎在线观看 | 浮妇高潮喷白浆视频 | 国产高清在线观看 | 亚洲精品入口一区二区在线播放 | 中国一级特黄真人毛片 | 337p人体粉嫩胞高清视频 | 国产人妻精品久久久久野外 | 性a爱片免费视频性 | 四虎影院观看视频 | 正在播放的国产a一片 | 青草青草久热国产精品 | 精品三级国产一区二区三区四区 | 亚洲精品午夜在线观看 | 久久精品久久精品国产大片 | 国产成人综合欧美精品久久 | 一本av高清一区二区三区 | 亚洲国产精品丝袜在线观看 | 国产精欧美一区二区三区 | 亚洲国产成人极品综合 | 人妻被按摩师玩弄到潮喷 | 一本久久综合亚洲鲁鲁五月天 |