Поведение redis client-output-buffer-limit во время ресинхронизации - PullRequest
1 голос
/ 28 мая 2019

Я предполагаю, что во время повторной синхронизации реплики (полной или частичной) мастер попытается отправить данные на реплику как можно быстрее. Не означает ли это, что выходной буфер реплики на главном сервере быстро заполнится, поскольку скорость, которую может записать мастер, скорее всего будет выше пропускной способности сети? Если у меня установлено значение client-output-buffer-limit для реплик, разве мастер не закроет соединение до завершения ресинхронизации?

1 Ответ

0 голосов
/ 28 мая 2019

Да, Redis Master закроет соединение, и синхронизация начнется заново. Но, пожалуйста, найдите некоторые детали ниже:

  1. Нужно ли трогать этот параметр конфигурации и какова его цель / выгода / стоимость?
  2. Существует нулевая (почти) вероятность того, что это произойдет с конфигурацией по умолчанию и довольно умеренным современным оборудованием.
  3. "По умолчанию обычные клиенты не ограничены, потому что они не получают данные без запроса (принудительно), но сразу после запроса, поэтому только асинхронные клиенты могут создавать сценарий, в котором данные запрашиваются быстрее, чем они могут прочитать. "- фрагмент из документации.
  4. Даже если это произойдет, репликация начнется с начала, но может привести к бесконечному циклу, когда ведомые устройства будут постоянно запрашивать синхронизацию снова и снова. Redis Master необходимо будет разветвить весь снимок памяти (выполнить BGSAVE) и использовать до 3 раз ОЗУ от первоначального размера снимка каждый раз во время синхронизации. Это будет вызывать более высокую загрузку ЦП, скачки памяти в сети (если есть) и IO.

Общие рекомендации, чтобы избежать производственных проблем при настройке этого параметра конфигурации:

  1. Не уменьшайте этот буфер и, прежде чем увеличивать его размер, убедитесь, что на вашем устройстве достаточно памяти.
  2. Пожалуйста, учитывайте общий объем оперативной памяти как объем памяти снимка (удвоенный для процесса BGSAVE копирования при записи) плюс размер любых других настроенных буферов плюс некоторая дополнительная емкость.

Подробнее см. здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...