Если кластер OpenSearch начинает отклонять запросы на индексирование, причин может быть несколько. Как правило, это указывает на то, что один или несколько узлов не справляются с объемом запросов на индексирование / удаление / обновление / массовые запросы, в результате чего на этом узле скапливается очередь. Как только очередь индексирования превысит максимальный размер очереди индексирования (как определено здесь: Threadpools), узел начнет отклонять запросы на индексирование.
Как решить проблему
Вам следует проверить состояние пула потоков, чтобы выяснить, происходят ли отказы в индексировании всегда на одном узле или же они распространяются на все узлы.
1 | GET /_cat/thread_pool/index |
- Если отказ происходит только на определенных узлах данных, возможно, у вас проблемы с балансировкой нагрузки или шардом. См. раздел Загруженные узлы данных - важное руководство по OpenSearch.
- Следуйте советам из этого руководства, чтобы оптимизировать индексирование: Улучшите скорость индексирования OpenSearch с помощью этих советов
- Если отказ связан с высокой загрузкой процессора, то это, как правило, следствие сборки мусора JVM, которая, в свою очередь, вызвана проблемами с конфигурацией или запросами. Для обсуждения сбора мусора JVM см: Использование размера кучи и сборка мусора JVM в ES - подробное руководство.
- Отказ от очереди, связанный с высокой нагрузкой на процессор, также можт быть симптомом свопинга памяти на диск, если он не был отключен на узле должным образом. См: Настройка блокировки памяти Bootstrap имеет значение False - Руководство по OpenSearch.
- Если в вашем кластере большое количество шардов, то, возможно, у вас проблема с избыточным шардингом. См. это руководство в статье Слишком маленькие шарды (Oversharding) - подробное руководство.
- Если вы наблюдаете отказ очереди на узле, но при этом процессор НЕ перегружен, возможно, проблема в скорости записи на диск. Посмотрите данные мониторинга и проверьте количество IOPs в секунду. Это, скорее всего, относится к вращающимся типам дисков, а также может быть характерно для блочных хранилищ, которым трудно достичь скорости IOP, необходимой для интенсивного индексирования.
- Если ваша проблема связана с переиндексацией, а не с обычным индексированием.