Я пытаюсь запустить 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.
ЕС установлено:
-Xms1g
-Xmx1g
и jvm имеет MaxHeapSize = 1056309248 (1 ГБ). И это работает нормально.
Я не понимаю, почему установка Windows запрашивает размер кучи 3 ГБ и почему jvm не может его предоставить.
документация говорит, что имя переменной env должно быть ES_JAVA_OPTS.
Вы также можете просто не указывать его и полагаться на максимальный размер кучи по умолчанию, который в вашем случае должен составлять ~ 8 ГБ (1/4 доступной памяти).
Я бы поклялся, что пробовал без переменной окружения, но я, должно быть, пробовал, когда имел дело с более ранней ошибкой. Теперь это работает. Спасибо!