Подтвердить что ты не робот

Elasticsearch OutOfMemoryError Явное пространство Java

Я запускаю 8 ядер, 32g RAM elasticsearch node с 5 шагами, 400 миллионами (маленькими) документами.

Все отлично работает, пока я не запускаю поиск agg, затем осколки начинают сбой:

java.lang.OutOfMemoryError: Java heap space

У меня изменен размер кучи с: export ES_HEAP_SIZE=16g (также ES_MAX_MEM и ES_MIN_MEM к тому же)

также изменил файл yml для поиска elasticsearch:

bootstrap.mlockall: true

и даже (рекомендуется документами установки):

sudo sysctl -w vm.max_map_count=262144

Перезапустите службу и все еще нет никакого удара, еще java.lang.OutOfMemoryError: Java heap space

Любые другие предложения? кроме запросов agg не запускать?

:

https://localhost:9200/my_index_name/_search?search_type=count
{
  "aggs": {
    "distinct_hostname": {
      "cardinality": {
        "field": "hostname"
      }
    }
  }
}
4b9b3361

Ответ 1

Я думаю, что обнаружил ошибку. Я использовал "службу" для запуска elasticsearch, и поэтому мои переменные среды были разделены. Мне пришлось обновить файл /etc/default/elasticsearch переменными env переменными (в частности, ES_HEAP_SIZE=16g).

Пока это работает хорошо, а приложение не является ошибкой.

Ответ 2

Правильный способ обновления размера кучи Java для Elasticsearch 5 не EXPORT _JAVA_OPTIONS или EXPORT ES_HEAP_SIZE или с использованием параметров командной строки. Насколько я могу судить, все они переопределены конфигурационным файлом в каталоге установки Elasticsearch, config/jvm.options. Чтобы изменить эти параметры, вам необходимо отредактировать эти строки в этом файле:

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms2g
-Xmx2g