2015-05-26 2 views
-1

Может кто-нибудь, скажите мне разницу в Размер памяти процесса Java и Размер кучи Java. На самом деле, я пытался настроить Elasticsearch 1.5.2 экземпляр на машине. Его документРазница между размером памяти процесса Java и размером кучи

https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html#_environment_variables

говорит, что я могу настроить максимально допустимую память для процесса. Я полагаю, что это, как это делается

export JAVA_OPTS=”-Xms256m -Xmx512m” 

Кроме того, я могу установить переменные окружения ES_HEAP_SIZE настроить максимальный размер кучи (Семантика не дана). Может кто-нибудь, пожалуйста, скажите мне разницу между обоими и как настроить (синтаксис для указания памяти) ES_HEAP_SIZE?

+3

Это кажется дубликат этого вопроса -> http://stackoverflow.com/questions/27438429/big-difference-between-jvm- size-size-size-size-size-size-size- –

+0

Вы говорите, что документация Elasticsearch ошибочна? В нем говорится: «Наиболее важным параметром для этого является -Xmx для управления максимально допустимой памятью для процесса и -Xms для управления минимальной выделенной памятью для процесса» –

+0

В нем четко указано это как ** память для процесса * *, не куча. Если у нас есть Elasticsearch, пожалуйста, ответьте. –

ответ

2

Куча - это место для хранения объектов, созданных вашим Java-приложением, здесь происходит сборка мусора, память, используемая вашим Java-приложением.

Общее потребление памяти в процессе JVM состоит из большего количества вещей, чем только куча Java, поэтому размер вашей памяти в Java будет больше, чем максимальный размер кучи. Примеры:

  • стеки потоков
  • памяти, выделенной машинным код/​​библиотеки

переменная ES_HEAP_SIZE будет использоваться elasticsearch для определения XMS и Xmx к этому значению

см код =>https://github.com/elastic/elasticsearch/blob/1d3a8ad36a5eec76a246656b098cf1f68b0989fa/bin/elasticsearch.in.sh#L11

Таким образом, вам необходимо определить ES_HEAP_SIZE, перед запуском Elasticsearch

Вы можете сделать это в /etc/default/elasticsearch, например (на Debian), используя export ES_HEAP_SIZE=8g

+0

Заявление в документации Elasticsearch («Самая важная настройка для этого -« -Xmx »для управления ** максимально допустимой памятью для процесса ** и -Xms для управления ** минимальной выделенной памятью для процесса **) это неправильно, не так ли? Поскольку мы не можем контролировать ** максимально допустимую память для процесса **, можем ли мы? –

+0

Да, это неправильное использование языка, вероятно, у вас будет немного больше объема памяти, чем определено Xmx –

+0

Спасибо. Тогда я соглашусь с ES_HEAP_SIZE. –

Смежные вопросы