elasticsearch _JAVA_选项未设置-Xmx,elasticsearch,jvm,windows-10,elasticsearch,Jvm,Windows 10" /> elasticsearch _JAVA_选项未设置-Xmx,elasticsearch,jvm,windows-10,elasticsearch,Jvm,Windows 10" />

elasticsearch _JAVA_选项未设置-Xmx

elasticsearch _JAVA_选项未设置-Xmx,elasticsearch,jvm,windows-10,elasticsearch,Jvm,Windows 10,我正试图让Elasticsearch在我的windows机器上运行,但出现了一个错误,“无法创建Java虚拟机。” Windows 10,32GB内存,64位 JVM 1.8.0_201 Elasticsearch 6.6.1与msi安装程序一起安装,而不是作为服务安装 Elasticsearch要求的堆大小略大于3GB,因此我设置了(并尝试注释了)jvm.options: -Xmx4096m -Xms4096m 但是我得到了可怕的JVM错误。我确信这个错误是由jvm堆大小太小引起的。因此,我

我正试图让Elasticsearch在我的windows机器上运行,但出现了一个错误,“无法创建Java虚拟机。”

Windows 10,32GB内存,64位
JVM 1.8.0_201
Elasticsearch 6.6.1与msi安装程序一起安装,而不是作为服务安装

Elasticsearch要求的堆大小略大于3GB,因此我设置了(并尝试注释了)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选项,但MaxHeapSize仍在2GB左右。我也尝试过以管理员的身份运行弹性搜索,并强制jvm以管理员的身份运行,但这并没有帮助。这似乎是一个常见的问题,但答案是有限的,没有一个对我有效

编辑 我在Ubuntu18服务器上使用相同的java和ES版本运行Elasticsearch

ES设置为:

-Xms1g
-Xmx1g
jvm的MaxHeapSize=1056309248(1GB)。它工作得很好

我不明白为什么Windows安装要求3GB堆大小,为什么jvm不能提供它。

说env变量名应该是
ES\u JAVA\u OPTS

您也可以不使用它,而是依赖默认的最大堆大小,在您的情况下,该大小应为~8GB(可用内存的1/4)。

我发誓我在没有环境变量的情况下尝试过它,但我必须在处理早期错误时尝试过它。现在可以了。谢谢