У меня много проблем с настройкой Elasticsearch для обеспечения высокой производительности поисковых запросов. Это мои характеристики:
Настройка ES: Версия: 0.90.0, 2 узла (m3.2xlarge экземпляры aws) в кластере, 32 ГБ ОЗУ каждый, 50% выделено для ES_HEAP_SIZE, без подкачки
Данные: 75 ММ документов, 25 полей в каждом
Запросы, сделанные для эталонного теста: запрос с несколькими совпадениями для 5 текстовых полей
Я пробовал все, что упоминалось здесь и здесь
При частоте входных запросов до 30 запросов в секунду время отклика остается менее 1 с. Выше 30+ запросов в секунду производительность резко падает, а время отклика увеличивается до 50 секунд. Пока это происходит, JVM Heap стабилен (около 7-8 в bigdesk), и GC также стабилен. Тем не менее, загрузка ЦП быстро увеличивается и составляет 800% (8 ядер), а средняя нагрузка очень высока 16. Горячие потоки продолжают переключаться между функциями поиска и оценки, такими как BooleanScorer2.nextDoc, BooleanQuery.createWeight, DisjunctionSumScorer.advance, BufferedIndexInput.refill. и тому подобное
Вопрос: Не могли бы вы помочь мне выяснить, почему производительность резко падает после 30 запросов в секунду и как решить эту проблему, изменив конфигурацию кластера, если это возможно.
Заранее спасибо!