1% запросов в elasticsearch кластер на bulk индексацию остаются без ответа от elastic



Всем приветимею вот такую схемуесть кластер elasticsearch 2.x перед которым стоит nginxу меня ~1% запросов в elasticsearch кластер на bulk индексацию тупо остаются без ответа от elasticт.е. вот пришел коннект в nginx, далее proxy_pass и коннект на elasticsearch пошел, запрос ушела ответа нет и у меня срабатывает на nginx в error.log connection timeout ... timeout 600 sec стоит... больше уже не выкрутить, а остальные запросы в этом время все нормально за 0.01 сек индексируется...в данных которые в bulk идут ничего подозрительного нетэтот же запрос чуть позже нормально отрабатывается (ладно там хотя бы очереди есть)что делать как полечить?запрос от nginx до elasticsearch через loopback интерфейс идет и firewall там нет, хотя в системе стоит ufw в качестве стандартного firewall ...
666   20  

Comments

  1. Alexey Rybak
    Alexey Rybak 5 лет назад
    собрать логи на стороне эластиков?
    • Eugene Klimov
      Eugene Klimov 5 лет назад
      они собираются, но там только ошибки собираются и там сейчас НЕТ ошибок. можно попробовать какой то debug лог включить и покопаться... щас буду с этим сидеть, но вдруг кто симптомы знает и подобную схему городил?
    • Igor Podlesny
      Igor Podlesny 5 лет назад
      okmeter'ом, причём
    • Igor Podlesny
      Igor Podlesny 5 лет назад
      Паша, я пошутил вообще )
    • Paul Tru
      Paul Tru 5 лет назад
      ну, а я полайкал )
  2. Yury Alexandrov
    Yury Alexandrov 5 лет назад
    Не хватает свободных коннектов?
    • Eugene Klimov
      Eugene Klimov 5 лет назад
      кому не хватает? elasticsearch? а где задается кол-во коннектов которые он может обслуживать? и почему в логи не пишется ошибка на тему "не хватает коннектов"?
  3. Иван Кузнецов
    Иван Кузнецов 5 лет назад
    Кластер и запросы по loopback - это как - а к как минимум второму узлу каким образом запросы ходят ? Ну безотносительно канала к узлам я бы потери в очередях ES посмотрел.
    • Eugene Klimov
      Eugene Klimov 5 лет назад
      ну запросы уходят с nginx на upstream, nginx стоит на одной из нод. в какой то момент времени я решил убрать все хосты кроме 127.0.0.1 из upstream и посмотреть что получится, больших RPS там нет вообще
    • Eugene Klimov
      Eugene Klimov 5 лет назад
      что такое "потери в очередях ES"? и как их смотреть?
  4. Денис Габайдулин
    Денис Габайдулин 5 лет назад
    А какую роль nginx здесь играет?Из опыта эксплуатации, es может сильно тупить на индексации большого кол-ва документов (в нашем случае на 20000 в одном запросе уже начинались проблемы) и на параллельных запросах на индексацию (переделали через очередь). Я бы посмотрел что происходит на машине, где стоит master: диски, cpu, swap.
    • Eugene Klimov
      Eugene Klimov 5 лет назад
      gc log Не показывал ничего такого короткие паузы на master
    • Eugene Klimov
      Eugene Klimov 5 лет назад
      nginx поставлен для возможности быстро перенаправить запросы "куда нибудь в другое место", но мне это тоже все не нравится, дурацкая какая то схема, как и сам elasticsearch
    • Денис Габайдулин
      Денис Габайдулин 5 лет назад
      Если это не внешняя проблема, тогда надо смотреть уже внутрь elastic.
  5. Андрей Григорьев
    Андрей Григорьев 5 лет назад
    Как полечить - прописать proxy_http_version 1.1 и keepalive для upstream. Но вообще это странное что-то у вас там.
    • Андрей Григорьев
      Андрей Григорьев 5 лет назад
      Я бы даже скорее на nginx поставил чем на эластик. Версия какая?
    • Eugene Klimov
      Eugene Klimov 5 лет назад
      Андрей Григорьев 1.10 стандартная ubuntu
    • Андрей Григорьев
      Андрей Григорьев 5 лет назад
      А конфиг и что именно в лог пишется?
  6. Станислав Осипов
    Станислав Осипов 5 лет назад
    Убрать nginx
    • Eugene Klimov
      Eugene Klimov 5 лет назад
      да. у меня тоже первая такая реакция