Elasticsearch Неравномерное распределение очереди записи - PullRequest
1 голос
/ 17 апреля 2020

У меня есть кластер с равномерным распределением данных, который маршрутизируется на основе документа _id - случайной строки. Во время обычной работы поиск и запись в кластер выполняется с равномерным распределением. Однако при массовом обновлении документов в кластере в течение нескольких минут работают только 1-2 узла.

Вот как выглядит операция массового обновления после нескольких минут выполнения -

  q  qs        node_id

  0 200 Wd5JFj4gRk-9pKL_Jubd3w
  0 200 FQ86BI1ASUS0tu-XQMuk6w
  0 200 dMeO029LSiqjwicm3YP8JA
  0 200 b8zAduWdRyO7P9Lz7hSFBQ
  0 200 K0o4v_mHRqSRNZWJpzvJPQ
224 200 HN1yQG_hRF2eiCyy_0Dpcg
  0 200 GXsc0FKsSUemue-e1Cuzsg
  0 200 LcDaZoipQA63UOg0_WHguA
  0 200 PdKFe7nLRaCnEqECNLpFvg
  0 200 glani3PYQ4qppwzvLQnjIQ
  0 200 T9jqycccQ-a03YtUCGVy0w

Как видите, узел HN1y становится очень активным, когда другие узлы кажутся go тихими. Общая пропускная способность обновлений резко падает, и единственный способ решить ее - приостановить выполнение массового обновления, подождать минуту и ​​возобновить работу. В этот момент мы go выполняем те же этапы равномерного распределения, которые в конечном итоге оказываются на одном узле, выполняющем всю работу.

Как кластер может попасть в такую ​​ситуацию? Это говорит о том, что распределение действительно неравномерное или что-то еще происходит?

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