У меня есть сервер Apache с конфигурацией Elasticsearch по умолчанию, и все работает отлично, за исключением того, что конфигурация по умолчанию имеет максимальный размер 1 ГБ.
У меня нет такого большого количества документов для хранения в Elasticsearch, поэтому я хочу уменьшить объем памяти.
Я видел, что мне нужно изменить -Xmx
параметр в конфигурации Java, но я не знаю, как это сделать.
Я видел, что могу выполнить это:
bin/ElasticSearch -Xmx=2G -Xms=2G
Но когда мне придется перезапустить Elasticsearch, это будет потеряно.
Можно ли изменить максимальное использование памяти, если Elasticsearch установлен как служба?
elasticsearch
Patxi1980
источник
источник
index.number_of_shards: 1 index.number_of_replicas: 0
Таким образом вы сэкономите память и процессор, не выполняя ненужную работу. .Ответы:
В ElasticSearch> = 5 документация изменилась , что означает, что ни один из приведенных выше ответов не помог мне.
Я попытался изменить
ES_HEAP_SIZE
в/etc/default/elasticsearch
иetc/init.d/elasticsearch
, но когда я побежалps aux | grep elasticsearch
выход еще показал:/usr/bin/java -Xms2g -Xmx2g # aka 2G min and max ram
Мне пришлось внести эти изменения в:
/etc/elasticsearch/jvm.options
источник
/usr/local/opt/elasticsearch/libexec/config/jvm.options
/usr/local/etc/elasticsearch/jvm.options
Обновлено 24 ноября 2016 г . : Elasticsearch 5, очевидно, изменил способ настройки JVM. Смотрите этот ответ здесь . Ответ ниже по-прежнему относится к версиям <5.
tirdadc, спасибо, что указали на это в своем комментарии ниже.
У меня есть страница pastebin, которой я делюсь с другими, когда интересуюсь памятью и ES. У меня это сработало: http://pastebin.com/mNUGQCLY . Я тоже вставлю сюда содержимое:
Ссылки:
https://github.com/grigorescu/Brownian/wiki/ElasticSearch-Configuration http://www.elasticsearch.org/guide/reference/setup/installation/
Отредактируйте следующие файлы, чтобы изменить ограничения памяти и количества файлов. Эти инструкции предполагают, что Ubuntu 10.04 может работать в более поздних версиях и других дистрибутивах / ОС. ( Изменить : это работает и для Ubuntu 14.04.)
/etc/security/limits.conf :
/ etc / default / elasticsearch (в CentOS / RH: / etc / sysconfig / elasticsearch) :
/etc/elasticsearch/elasticsearch.yml :
источник
/etc/default
находятся в папке `/ etc / sysconfig '/etc/sysconfig/elasticsearch
- подходящее место для внесения этих изменений. RPM даже предоставляет версию этого файла по умолчанию./etc/security/limits.d/elasticsearch.conf
Для тех, кто хочет сделать это на Centos 7 или в другой системе, работающей под управлением SystemD, вы можете изменить это в
Раскомментируйте строку ES_HEAP_SIZE и установите значение, например:
(Игнорируйте комментарий о 1 г макс - это значение по умолчанию)
источник
Инструкции для
ubuntu 14.04
:sudo vim /etc/init.d/elasticsearch
Устанавливать
ES_HEAP_SIZE=512m
затем в:
sudo vim /etc/elasticsearch/elasticsearch.yml
Устанавливать:
bootstrap.memory_lock: true
Для получения дополнительной информации в файлах есть комментарии
источник
Предыдущих ответов в моем случае было недостаточно, вероятно, потому, что я использую Debian 8, в то время как они относились к некоторым предыдущим дистрибутивам.
В Debian 8 измените сценарий службы, который обычно помещается в него
/usr/lib/systemd/system/elasticsearch.service
, и добавьтеEnvironment=ES_HEAP_SIZE=8G
чуть ниже других строк «Environment = *».Теперь перезагрузите сценарий службы
systemctl daemon-reload
и перезапустите службу. Работа должна быть сделана!источник
/usr/
?Если вы используете служебную оболочку, предоставленную в репозитории Github Elasticsearch, которая находится по адресу https://github.com/elasticsearch/elasticsearch-servicewrapper , то файл conf по адресу elasticsearch-servicewrapper / service / elasticsearch.conf управляет настройками памяти. Вверху elasticsearch.conf находится параметр:
Просто уменьшите этот параметр, скажем, до «set.default.ES_HEAP_SIZE = 512», чтобы уменьшить объем памяти, выделенной Elasticsearch.
Обратите внимание, что если вы используете обертку elasticsearch, ES_HEAP_SIZE, предоставленный в elasticsearch.conf, ПЕРЕМЕНЯЕТ ВСЕ ДРУГИЕ НАСТРОЙКИ. Мне потребовалось немного времени, чтобы понять, поскольку из документации казалось, что память кучи может быть установлена из elasticsearch.yml.
Если настройки вашей служебной оболочки установлены где-то еще, например, в / etc / default / elasticsearch, как в примере Джеймса, тогда установите ES_HEAP_SIZE там.
источник
export ES_HEAP_SIZE=1G; bin/elasticsearch -d
Если вы установили ES с использованием пакетов RPM / DEB, как указано (как вам кажется), вы можете настроить это, отредактировав сценарий инициализации (
/etc/init.d/elasticsearch on RHEL/CentOS
). Если вы посмотрите в файл, вы увидите блок со следующим:Чтобы отрегулировать размер, просто измените
ES_HEAP_SIZE
строку на следующее:(где x - количество МБ / ГБ ОЗУ, которое вы хотели бы выделить)
Пример:
Выделил бы 1Гб.
После редактирования сценария сохраните и выйдите, а затем перезапустите службу. Вы можете проверить, правильно ли он установлен, выполнив следующие действия:
И проверка флагов -Xms и -Xmx в java-процессе, который возвращает:
Надеюсь это поможет :)
источник
Не устанавливайте для Xmx значение выше порогового значения, которое JVM использует для указателей сжатых объектов (сжатые ой), точное ограничение может быть разным, но составляет около 32 ГБ.
Также можно установить размер кучи через переменную среды
источник
В домашнем каталоге пути elasticsearch, то есть обычно
/usr/share/elasticsearch
, есть файл конфигурацииbin/elasticsearch.in.sh
. Изменить параметрES_MIN_MEM
,ES_MAX_MEM
в этом файле для изменения-Xms2g
,-Xmx4g
соответственно. И убедитесь, что вы перезапустили узел после этого изменения конфигурации.источник
Если вы используете сервер Windows, вы можете изменить переменную среды, перезапустить сервер, чтобы применить новое значение среды и запустить эластичную службу. Подробнее об установке Elastic в Windows Server.
источник
В elasticsearch 2.x:
Перейти к блоку кода
Раскомментируйте последнюю строку, например
источник