Redis Slave进行数据备份BGSAVE时可能内存突发跑满

Redis Slave进行数据备份BGSAVE时可能内存突发跑满

前几天突然线上的redis slave 把64G的内存给占用满了,本来机器上的数据正常只会占用55.5%左右35G的内存的。 查看进程情况,当时redis正好在做BGSAVE操作,所以有2个Redis进程存在,初步怀疑是因为这个原因,但是理论上redis的BGSAVE是fork出来的进程,他们刚开始是共用物理内存的(Redis源码学习-AOF数据持久化原理分析(0)),除非主进程有数据修改,其实就是利用了操作系统的COW机制,巧妙的对redis做了一个数据快照。但明显线上系统不可能短时间内触发大部分数据的修改,所以排除这个的原因。 然后查看redis的日志发现了问题: 08 Apr 17:11:49 * MASTER SLAVE sync started //由于网络抖动,到master的连接断开,需要重连接 08 Apr 17:11:49 * Non blocking connect for SYNC fired the event. 08 Apr 17:28:23 * MASTER SLAVE sync: receiving 35120836844 bytes from master //开始去接收35G的数据到本地; 09 Apr 00:10:19 * 1 changes in 43200 seconds. Saving…

来源: Redis Slave进行数据备份BGSAVE时可能内存突发跑满 | 趁着年轻

More from my site

好烂啊有点差凑合看看还不错很精彩 (No Ratings Yet)
Loading...
71 views

发表评论

电子邮件地址不会被公开。 必填项已用*标注

跳至工具栏