[实践OK]redisrdb持久化之redis因业务问题关闭持久化,在短暂业务高并发时临时关闭bgsave,过了高并发后再触发一下bgsave或再重新配置回。
背景:频繁调用itv投票和调查接口,导致 redis 频繁bgsave ,进而引起大量磁盘io报警,在一些大型的活动,如奥运会、世界杯一些业务会量比较大,在后端肯定是Redis来扛了,而出现了大量的bgsave,导致Redis在刷磁盘时会出现性能陡然下降,触发了Zabbix的报警,鉴于此,得临时性关掉Redis,redis如何关闭持久化?
bgsave的进程在Fork时会生成一样的内存数据,
操作系统认为太多,导致内存不给分派于是出现,fork: Cannot allocate memory :
https://jee-appy.blogspot.com/2016/04/can-not-save-in-background-fork-redis.html?m=1
修改redis配置文件,redis.conf 第115行左右。
1.注释掉原来的持久化规则
#save 900 1
#save 300 10
#save 60 10000
2.设置为空
save ""
然后重启redis服务即可,Bgsave放在备份Redis里,这样就不会因为主Redis挂了导致宕机。
ls -lart /data/redis6413 |less
-rw-r--r-- 1 redis redis 211841024 Jan 9 14:00 temp-33345.rdb
-rw-r--r-- 1 redis redis 212078592 Jan 9 15:00 temp-53462.rdb
-rw-r--r-- 1 redis redis 220446720 Jan 9 16:00 temp-8399.rdb
-rw-r--r-- 1 redis redis 212865024 Jan 9 17:00 temp-28516.rdb
http://blog.csdn.net/opens_tym/article/details/10097805
摘自 :https://blog.csdn.net/tomisaboy/article/details/53763537
bgsave的进程在Fork时会生成一样的内存数据,
操作系统认为太多,导致内存不给分派于是出现,fork: Cannot allocate memory :
https://jee-appy.blogspot.com/2016/04/can-not-save-in-background-fork-redis.html?m=1
修改redis配置文件,redis.conf 第115行左右。
1.注释掉原来的持久化规则
#save 900 1
#save 300 10
#save 60 10000
2.设置为空
save ""
然后重启redis服务即可,Bgsave放在备份Redis里,这样就不会因为主Redis挂了导致宕机。
ls -lart /data/redis6413 |less
-rw-r--r-- 1 redis redis 211841024 Jan 9 14:00 temp-33345.rdb
-rw-r--r-- 1 redis redis 212078592 Jan 9 15:00 temp-53462.rdb
-rw-r--r-- 1 redis redis 220446720 Jan 9 16:00 temp-8399.rdb
-rw-r--r-- 1 redis redis 212865024 Jan 9 17:00 temp-28516.rdb
http://blog.csdn.net/opens_tym/article/details/10097805
摘自 :https://blog.csdn.net/tomisaboy/article/details/53763537
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/9189/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2018-9-25 17:14
评论列表