Задать вопрос

Почему только одна из нод mongo replicaset работает быстро?

Доброго дня!

Что имеется: несколько ДЦ в разных городах (вернее, странах) с пингом между собой ~100 мс. MongoDB на них, с поднятой ReplicaSet. На каждой из нод развернуто приложение с настройками setReadPref("nearest", {"dc":<тэг ближайшего ДЦ>}). В репликасете есть арбитр.

Суть проблемы: запросы на одну из нод (ближайшую ко мне, географически) происходят быстро (запрос по типу find({_id: ...}), на все остальные — медленно.
Средняя скорость выполнения — порядка 500 мс для коллекции 150 кб.
На «быстрой» ноде запрос выполняется за 0.01 мс.
Если на «медленной» ноде ограничивать элементы коллекции, например, запрашивать только одно поле с integer - запрос обрабатывается быстро.
В профайлере millis = 0, локи на r/w не более, чем 500 micros.
  • Вопрос задан
  • 2370 просмотров
Подписаться 3 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Skillbox
    Курс Java-разработчик
    4 месяца
    Далее
  • Яндекс Практикум
    Фулстек-разработчик
    16 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
На установленном уже соединении долго обрабатываются запросы?
Или же до установки соединения.
С пингом в 100мс до отправки запроса на сервер уйдет 200-300мс.
Посмотрите в логи перегрузки данных через ReplicaSet по нодам, и вы увидите реальное запаздываение, которые будет больше чем 100мс.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы