Redis 2.2 性能问题
作者: 曲文庆 日期: 2012-03-26 18:55
系统环境:
CPU:E5620 X 2
Memory:96G
Disk:300G SAS
OS:CentOS 5
Redis:2.2.12
服务器创建了两个redis 实例:A和B
实例A内存占用200M多,有频繁的读写操作
实例B内存占用1G多,主要是读操作
系统每小时对实例A和B做一次bgrewriteaof
后端有针对实例A和B业务的可用性监控
问题:
当B实例做bgrewriteaof时候,A实例的业务访问异常,用cli模式登陆A实例,发现无论是读还是写,都异常慢。
观察系统资源,很淡定,观察disk io,发现B实例做bgrewriteaof时,disk的使用率100%
分析是硬盘资源阻塞了A实例
通过分析,redis配置的是 appendfsync everysec (默认配置),由于redis每秒做fsync,而fsync是在主进程完成的,此时disk的io使用率是100%,导致了redis的阻塞。
对2.2版本的临时解决方案
appendfsync no
no-appendfsync-on-rewrite yes
终极解决,升级到redis 2.4
在redis 2.4中,对fsync的操作,是由子进程来完成的,系统初始的时候,初始一个队列,主进程将任务压入队列,由子进程监控队列完成相应任务。
详细请参考redis手册
评论: 0 |
引用: 0 |
阅读: 7464
redis使用过程中的几点经验教训 (2012-10-25 15:08)
redis将slave转换为master (2011-12-16 17:30)
Redis for cacti 模板 (2011-11-17 11:32)
redis海量数据测试(续三) (2011-11-17 11:04)
redis海量数据测试(续二) (2011-11-17 11:02)
redis海量数据测试(续一) (2011-10-09 16:02)
redis海量数据测试 (2011-10-09 16:00)
CentOS 下 Redis 2.2.12 安装配置详解 (2011-10-09 15:56)