Я пытаюсь запустить 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 не может его предоставить.