У меня есть Redis Master, который имеет 30 ГБ данных и памяти там 90 ГБ. У нас есть эта настройка, так как у нас меньше записей и больше чтений. Обычно у нас был бы ОЗУ размером 3X дБ.
Проблема здесь в том, что один раб испортился, а позже, когда мы добавили его обратно с помощью стража. он застрял в состоянии wait_bgsave на главном устройстве (после просмотра информации о главном устройстве)
Причина была в том, что:
client-output-buffer-limit slave 256mb 64mb 60
Это было установлено на главном устройстве, и, так как максимальная память недоступна, он ломаетсярепликация для нового раба. Я видел этот вопрос Репликация Redis и ограничение клиентского выходного буфера , где обсуждается аналогичная проблема, но у меня более широкий круг вопросов.
Мы не можем использовать много памяти,Итак, каковы возможные способы выполнить репликацию в этом контексте, чтобы предотвратить любой сбой на главном сервере (в отношении воздействия на память и задержку)
У меня есть несколько соображений: 1 - следует ли выполнять репликацию без диска - будет ли этоиметь какое-либо влияние на задержку записи и чтения? 2 - Должен ли я просто скопировать файл дампа с другого ведомого на это новое ведомое устройство и перезапустить Redis. ? будет ли это работать. 3 - Должен ли я увеличить ведомый выходной буфер-предел до большего предела? Если да, то сколько? Я хочу сделать это в течение некоторого времени, пока не произойдет репликация, а затем вернуться к нормальной настройке? Я скептически отношусь к этому подходу.