Заметки 5465 ~ 2 мин.

Как уменьшить/увеличить потребление памяти Elasticsearch

Как уменьшить/увеличить потребление памяти Elasticsearch

Что делать если elasticsearch жрет слишком много памяти

Это очень важная настройка для ElasticSearch. Чтобы этот параметр был установлен правильно, система должна хорошо контролироваться

Короче говоря, мы определяем объем памяти, который Elasticsearch будет выделять в начале, и максимальное использование памяти с помощью этой конфигурации.

Перед настройкой Heap Size я расскажу о концепции памяти Heap для правильного отслеживания размера Heap. Приложения Java используют методы «стека»(stack) и «кучи»(heap) для сохранения данных в памяти.

В режиме кучи приложение управляет использованием и очисткой памяти. В Java объекты хранятся в памяти кучи, и благодаря структурам, называемым сборщиком мусора, обеспечивается управление памятью кучи.

Что такое сборщик мусора?

В Java управление памятью выполняется в фоновом режиме с включенным JVM и сборщиком мусора. Сборщик мусора упрощает разработку приложений и сокращает время написания кода за счет автоматического управления памятью. Опять же, сборщик мусора может справиться с проблемой утечки памяти, вызванной ошибками кодирования.

Сборка мусора - это автоматизированный механизм управления памятью. он просматривает память кучи, обнаруживает используемые объекты и удаляет те, на которые нет ссылок. Пространство, занятое неиспользуемыми/несвязанными объектами, очищается из памяти, и это увеличивает доступную свободную память. Механизм, выполняющий этот процесс, называется сборщиком мусора.

Чрезмерный размер кучи может использоваться для кэширования, однако большой размер кучи может вызвать паузы в сборщике мусора. Когда сборщик мусора останавливается, возврат к конечной точке может длиться очень долго.

При длительной паузе доступ не происходит в распределенных системах, таких как Elasticsearch, поскольку узел может быть изолирован от кластера. На этом узле нет операций чтения или записи. Если узел является главным узлом, можно выбрать новый главный узел. Если узел является узлом данных, это может привести к размещению сегментов в других узлах данных. В этом случае увеличивается сетевой трафик, операции ввода-вывода на диске и нагрузка на кластер.

Вкратце, если размер кучи меньше необходимого, могут возникнуть другие проблемы, помимо ошибок памяти.

Рекомендации по уменьшению/увеличению размера "кучи" 

  • Настоятельно рекомендуется, чтобы размер кучи не превышал половины общей памяти. Поэтому, если у вас 64ГБ памяти, вам не следует устанавливать размер кучи на 48ГБ
  • Размер кучи не рекомендуется превышать 32ГБ
  • По умолчанию Xms1g и Xmx1g составляют 1ГБ
  • Чтобы изменить размер кучи JVM, то нужно отредактировать файл по пути /etc/elasticsearch/jvm.options.


################################################################
## IMPORTANT: JVM heap size
################################################################
##
## The heap size is automatically configured by Elasticsearch
## based on the available memory in your system and the roles
## each node is configured to fulfill. If specifying heap is
## required, it should be done through a file in jvm.options.d,
## and the min and max should be set to the same value. For
## example, to set the heap to 4 GB, create a new file in the
## jvm.options.d directory containing these lines:
##
## -Xms4g
## -Xmx4g
##
## See https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
## for more information
##
################################################################

т.е. если вы хотите уменьшить потребление оперативной памяти, то просто выставляете, например, такие значения:

-Xms512m
-Xmx512m

Если же захочется увеличить, то вбиваем, например 4Гб:


-Xms4g
-Xmx4g

 После изменения настройки, перегрузите ES:


sudo service elasticsearch restart

Теперь можете замерить потребление Elasticsearch'ом памяти и убедиться, что настройки были сохранены.   


Что думаешь?

Евгений11.04.2023

Ха-ха, elasticsearch жрет оперативки без зазрения совести))

Валерий01.03.2023

Блин, спасибо за статью, как установили, думали, что происходит, почему серверу не хватает памяти, а потом оказалось что из коробки ElasticSearch потребляет много памяти и надо уменьшать

Категории
  • PHP 67
  • Заметки 18
  • Безопасность 4
  • Флуд 2
  • Nginx 2
  • ИТ новости 2
  • Видео 1
  • Docker 1
  • Roadmap 1
  • Архитектура 0

Хочешь поддержать сайт?

Делаем из мухи слона

sergeymukhin.com

персональный блог о веб-разработке от Сергея Мухина. Блог был основан в 2018 году, и собирался уделять основное внимание последним тенденциям, учебным пособиям, а также советам и рекомендациям, позволяющим начинающим девелоперам встать быстрее на правильную дорогу веб разработки, но что-то пошло не так 😃

Релизы PHP 8.4

Дата Релиз
4 Июля 2024 Альфа 1
18 Июля 2024 Альфа 2
1 Августа 2024 Альфа 3
13 Августа 2024 Feature freeze
15 Августа 2024 Бета 1
29 Августа 2024 Бета 2
12 Сентября 2024 Бета 3
26 Сентября 2024 RC 1
10 Октября 2024 RC 2
24 Октября 2024 RC 3
7 Ноября 2024 RC 4
21 Ноября 2024 GA

Что нового?