用于将大数据复制到新从属服务器的Redis复制
我有一个redis主机,它有30 GB的数据和90 GB的内存。我们有这样的设置,因为我们有更少的写入和更多的读取。通常,我们会有一个3xdB大小的RAM机器 这里的问题是,一个奴隶腐败了,后来我们用sentinel重新添加了它。它在主机上陷入等待保存状态(在看到主机上的信息后) 原因是:用于将大数据复制到新从属服务器的Redis复制,redis,replication,Redis,Replication,我有一个redis主机,它有30 GB的数据和90 GB的内存。我们有这样的设置,因为我们有更少的写入和更多的读取。通常,我们会有一个3xdB大小的RAM机器 这里的问题是,一个奴隶腐败了,后来我们用sentinel重新添加了它。它在主机上陷入等待保存状态(在看到主机上的信息后) 原因是: client-output-buffer-limit slave 256mb 64mb 60 这是在主机上设置的,由于最大内存不可用,因此会中断新从机的复制。 我在讨论类似问题的地方看到了这个问题,但我的
client-output-buffer-limit slave 256mb 64mb 60
这是在主机上设置的,由于最大内存不可用,因此会中断新从机的复制。
我在讨论类似问题的地方看到了这个问题,但我的问题范围更广
我们不能用太多的内存。那么,在这种情况下,有哪些可能的复制方法可以防止主机上的任何故障(wrt.内存和延迟影响)
我心里只有几件事:
1-我是否应该执行无盘复制-它是否会对写入和读取的延迟产生任何影响?
2-我是否应该将转储文件从另一个从机复制到这个新的从机并重新启动redis?这样行吗。
3-我应该将输出缓冲区限制从增加到更大的限制吗?如果是,那么多少钱?我想这样做一段时间,直到复制发生,然后恢复到正常设置?我对这种方法持怀疑态度。您遇到了这个问题,因为您的复制速度很慢,而且它无法以需要的速度读取复制数据 为了解决此问题,您可以尝试增加
客户端输出缓冲区限制
缓冲区限制。此外,您还可以尝试在复制副本从主副本同步时禁用其持久性,然后启用持久性。通过禁用持久性,复制副本可能会更快地消耗数据。但是,如果主和副本之间的带宽非常小,则可能需要考虑重新部署副本以使其接近主机,并且具有较大的带宽。
1-我是否应该执行无盘复制-它是否会对写入和读取的延迟产生任何影响
我认为这与无盘复制无关
2-我是否应该将转储文件从另一个从机复制到这个新的从机并重新启动redis?这样行吗
不,不行
3-我应该将输出缓冲区限制从增加到更大的限制吗?如果是,那么多少钱?我想这样做一段时间,直到复制发生,然后恢复到正常设置
是的,你可以试着增加限额。在您的情况下,由于您的数据大小是30G,因此30G的硬限制应该可以解决这个问题。但是,这太多了,可能会产生其他影响。您需要进行一些基准测试,以获得正确的限制
是的,您可以通过CONFIG SET
命令动态更改此设置