Elasticsearch не может обрабатывать несколько запросов без резкого снижения производительности

У меня есть два узла кластера, размещенного в ElasticCloud.

Host     Elastic Cloud
Platform Google Cloud
Region   US Central 1 (Iowa)
Memory   8 GB
Storage  192 GB
SSD      Yes
HA       Yes

Каждый узел имеет:

Allocated Processors    2
Number of processors    2
Number of indices       4*
Shards (p/ index)       5*
Number of replicas      1
Number of document      150M
Allocated Disk          150GB

* основные индексы, кибана и наблюдатель, создают кучу небольших индексов.

Мои документы в основном текстовые. Есть некоторые другие поля (не более 5 на индекс), нет вложенных объектов. Индексы спецификации:

| Index   | Avg Doc Length | # Docs | Disk |
|---------|----------------|--------|------|
| index-1 | 300            | 80M    | 70GB |
| index-2 | 500            | 5M     | 5GB  |
| index-3 | 3000           | 2M     | 10GB |
| index-4 | 2500           | 18M    | 54GB |

Когда система находится в режиме ожидания, время отклика (время загрузки) обычно составляет несколько секунд. Но когда я симулирую поведение 10 пользователей, я начинаю получать тайм-ауты в своем приложении. Первоначально тайм-аут был 10 с, я обновил его до 60 с, и у меня все еще есть проблемы. Ниже приведена таблица для симуляции 10 одновременно работающих пользователей с использованием Search Api.

Красная линия - это общее время запроса в секундах, а пунктирная розовая линия - мое время ожидания 60 секунд. Поэтому я бы сказал, что в большинстве случаев мои пользователи будут испытывать тайм-аут. Запрос, который я использовал, довольно прост:

{
    "size": 500,
    "from": ${FROM},
    "query":{
        "query_string": {
            "query": "good OR bad"
        }
    }
}

Я перепробовал все возможные настройки, которые мне известны. Я не знаю, является ли это реальной производительностью ES, и я должен принять ее и обновить свой план.

0 ответов

Другие вопросы по тегам