Оптимизация в облаке

Здравствуйте!
Использую облачное решение, cluster ID - a275c3.
В последнее время столкнулся с периодическим "залипанием" при запросах, даже за короткий промежуток времени. Диск заполнен на 83%, оперативная минимум на 80%.
Подскажите, какие пути существуют для оптимизации в моем случае без увеличения тарифного плана?

О какой памяти идет речь? Heap?

Heap. Во время выборок, подскакивает до 100%

Значит ресурсов не хватает. Надо либо запросы менять, либо бюджет увеличивать. Для того, чтобы понять, что менять, и возможно ли это, надо смотреть на то, какие запросы вы посылаете и куда память эта уходит (_node/stats).

1 Like

Может ли помочь удаление ненужных полей?

Может ли помочь удаление ненужных полей?

надо смотреть куда память эта уходит.

Какие показатели важны из этого запроса? Слишком много строк, не могу сюда запостить.

gist.github.com и ссылку сюда.

Судя по метрикам, ваш кластер активно тротлится, из-за этого вы видите переодические "залипания". Вам надо либо увеличить мощьность кластера или снизить нагрузку на кластер, например оптимизацией запросов.

1 Like

@Yuri @Igor_Motov
Как понять нуждается ли запрос в оптимизации? Как можно оптимизировать запрос, например включением в запрос дополнительных полей?

@Yuri @Igor_Motov можете прокомментировать мой вопрос выше?

Как понять нуждается ли запрос в оптимизации? Как можно оптимизировать запрос, например включением в запрос дополнительных полей?

В elasticsearch есть несколько способов анализа запросов. Самое мощное средство это Query Profiler. К сожалению, как и любой другой профайлер, query profiler добавляет свою нагрузку, что иногда искажает результаты. Так что надо с ним быть аккуратным.

Более примитивное, но и более надежное средство - это hot_threads. Это средство позволяет посмотреть, где большинство запросов проводит больше времени.

У меня нет доступа к вашим запросам и к вашему кластеру, поэтому каких-то конкретных рекомендация дать не могу. Может, у @Yuri есть какие-то идеи по этому поводу.

1 Like

@111140 на первый взгляд дело не в запросах и не в маппингах. Индексов многовато. Однако это не должно так сильно влиять.
Пожалуйста обратитесь в поддержку. Это позволит нам исследовать проблему глубже.

1 Like

@Yuri написал на support@elastic.co

@Yuri создали тике #00169067
Его будете смотреть Вы или он пойдет в общем порядке?

Отлично! Этим будет заниматься специалист по Elasticsearch, коим я увы, не являюсь. Моя сфера - инфраструктура Elastic Cloud. Буду признателен, если вы выясните в чем была проблема, и напишите в этот топик как ее решили.

1 Like

@Yuri @Igor_Motov
В саппорте порекомендовали следующее:

  1. Upgrade your cluster to have more resources;
  2. Delete old indices that are not been used anymore, you can find indices from last year for example, here: ....eu-west-1.aws.found.io:9243/2016/_aliases
  3. Stop sending monitoring metric to the same cluster, its not the best practice. You should send this metric to a monitoring cluster. You can change that in the "Configuration" tab, section "Monitoring".

Выполнил 2 и 3 пункты, ситуация практически не изменилась. Остается только первый вариант. Планирую попробовать вариант "2 data centers".

@Yuri @Igor_Motov
Здравствуйте!
Не могу расширить кластер.
Переставляю параметр на нужный размер, нажимаю Update и ничего не происходит
но при этом есть сообщение - http://prntscr.com/hkryor
Новый инстанс не поднимается - http://prntscr.com/hkrz3w
Через некоторое время ползунок выбора тарифа встает на прежнее место.
Написал в саппорт, заявка #00170187, но долго ждать мы не можем, кластер тормозит.
Как то можете протолкнуть эту задачу в саппорте?

У вас кластер перегружен. Он даже не может сделать snapshot (последний сделан 11 часов назад). Согласно логам, это и есть причина почему кластер не может расширится.