_JAVA_OPTIONS не устанавливает -Xmx - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь запустить Elasticsearch на моей машине с Windows, но получаю сообщение об ошибке «Не удалось создать виртуальную машину Java».

Windows 10, 32 ГБ ОЗУ, 64-битная
JVM 1.8.0_201
Elasticsearch 6.6.1 устанавливается с установщиком msi, а не как служба.

Elasticsearch запрашивает размер кучи чуть более 3 ГБ, поэтому я установил (и также попытался закомментировать) jvm.options с помощью:

-Xmx4096m
-Xms4096m

Но тогда я получаю страшную ошибку JVM.Я уверен, что ошибка вызвана слишком маленьким размером кучи jvm.Поэтому я установил переменную окружения _JAVA_OPTIONS в «-Xms512m -Xmx6144m».

Если я запускаю:

java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize"

Я получаю:

Picked up _JAVA_OPTIONS: -Xms512m -Xmx6144m
 intx CompilerThreadStackSize                   = 0                                   {pd product}
 uintx ErgoHeapSizeLimit                        = 0                                   {product}
 uintx HeapSizePerGCThread                      = 87241520                            {product}
 uintx InitialHeapSize                          := 536870912                          {product}
 uintx LargePageHeapSizeThreshold               = 134217728                           {product}
 uintx MaxHeapSize                              := 2147483648                         {product}
 intx ThreadStackSize                           = 0                                   {pd product}
 intx VMThreadStackSize                         = 0                                   {pd product}
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

Вы можете видеть, что он «подхватывает» _JAVA_OPTIONS, но MaxHeapSize по-прежнему составляет около 2 ГБ.Я также пытался запустить упругий поиск от имени администратора и заставить jvm работать от имени администратора, но это не помогло.Это, кажется, общая проблема, но ответы ограничены, и ни один не работал для меня.

РЕДАКТИРОВАТЬ У меня Elasticsearch работает на сервере Ubuntu 18 с теми же версиями Java и ES.

ES имеет значение:

-Xms1g
-Xmx1g

, а jvm имеет MaxHeapSize = 1056309248 (1 ГБ).И он работает нормально.

Я не понимаю, почему при установке Windows запрашивается размер кучи 3 ГБ и почему jvm не может его предоставить.

1 Ответ

0 голосов
/ 01 марта 2019

Документация говорит, что имя переменной env должно быть ES_JAVA_OPTS.Вы также можете просто не указывать его и полагаться на максимальный размер кучи по умолчанию, который в вашем случае должен составлять ~ 8 ГБ (1/4 доступной памяти).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...