redis中两种持久化缺陷介绍


当前第2页 返回上一页

1、问题1描述:

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

接口报错如下:

1

2

3

4

{"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过于繁忙)所致,如下所示:

3.jpg

4.jpg

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

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

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

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

1

2

vm.dirty_background_ratio = 5

vm.dirty_ratio = 10

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

问题2描述:

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

总结

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

更多redis知识请关注redis入门教程栏目。

以上就是redis中两种持久化缺陷介绍的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

php+Redis实现加锁与解锁操作

Redis的hash怎么实现的

使用Redis可能遇到的15个坑,快来收藏避雷!!

Redis集群数据怎么同步

Redis和memcached的优缺点及区别介绍

Redis cluster集群介绍

使用Redis锁处理并发问题的方法

Redis的key可以是中文吗

Redis如何设置密码

Redis实现简单的条件查询

更多相关阅读请进入《Redis》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...