elasticsearch Elasticsearch忽略我的JVM堆大小设置,elasticsearch,docker-compose,jvm-arguments,elasticsearch,Docker Compose,Jvm Arguments" /> elasticsearch Elasticsearch忽略我的JVM堆大小设置,elasticsearch,docker-compose,jvm-arguments,elasticsearch,Docker Compose,Jvm Arguments" />

elasticsearch Elasticsearch忽略我的JVM堆大小设置

elasticsearch Elasticsearch忽略我的JVM堆大小设置,elasticsearch,docker-compose,jvm-arguments,elasticsearch,Docker Compose,Jvm Arguments,我在Linux(Ubuntu)的Docker容器中运行Elasticsearch。我有很多电路断路异常问题,引用了486.3mb的限制;所以我决定将JVM堆的大小提高一点。我的机器有6GB的物理内存,所以对于堆大小来说,3GB应该是安全的 因此,我在jvm.options中更改了设置。默认值为: -Xms1g -Xmx1g 所以我把它改成: -Xms2g -Xmx2g 这是一个转折点:我不仅不断得到同样大小限制的电路断路\u异常echo$ES_JAVA_OPTS返回-Xmx512m-Xm

我在Linux(Ubuntu)的Docker容器中运行Elasticsearch。我有很多电路断路异常问题,引用了486.3mb的限制;所以我决定将JVM堆的大小提高一点。我的机器有6GB的物理内存,所以对于堆大小来说,3GB应该是安全的

因此,我在
jvm.options
中更改了设置。默认值为:

-Xms1g 
-Xmx1g
所以我把它改成:

-Xms2g 
-Xmx2g

这是一个转折点:我不仅不断得到同样大小限制的
电路断路\u异常
echo$ES_JAVA_OPTS
返回
-Xmx512m-Xms512m
。这甚至不是默认设置。我还尝试离开默认的
jvm.options
,并在
jvm.options.d
中创建一个新的
user.options
,结果相同。我错过什么了吗?我在这里做错了什么吗?

您可以使用env var
ES\u JAVA\u OPTS将此设置传递给容器

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms2g -Xmx2g" docker.elastic.co/elasticsearch/elasticsearch:7.9.2

您可以使用env var
ES\u JAVA\u OPTS
将此设置传递给容器

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms2g -Xmx2g" docker.elastic.co/elasticsearch/elasticsearch:7.9.2

根据文档,在docker环境中,必须在docker-compose.yml中设置它


根据文档,在docker环境中,必须在docker-compose.yml中进行设置

如中所示,您可以将其作为env变量传递

version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.9.2
    container_name: es01
    environment: -> it comes under environment section, removed other settings for brevity
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" --> note this
    
更改此
ES\u JAVA\u OPTS
env变量值后,需要重新启动docker容器,如中所示,您可以将其作为env变量传递

version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.9.2
    container_name: es01
    environment: -> it comes under environment section, removed other settings for brevity
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" --> note this
    

更改此
ES\u JAVA\u OPTS
env variable value

您需要重新启动docker容器。您好,您可以添加运行elasticsearch的方式吗?如果您正在构建自己的映像或使用官方映像,您可以共享docker文件。对于官方映像,我可以将
-“ES_JAVA_OPTS=-Xms2g-Xmx2g”
作为环境变量传递,并可以增加堆大小。您好,您可以添加运行elasticsearch的方式,就像在构建自己的映像或使用官方映像时可以共享Dockerfile一样。对于官方映像,我可以传递
-“ES_JAVA_OPTS=-Xms2g-Xmx2g”
作为环境变量,并可以增加堆大小。这将创建一个新的容器,不是吗?我想修改当前的。这将创建一个新的容器,不是吗?我想修改一下现在的。啊,看起来我就是这么做的。我正在修改我的
docker compose.yml
,看看会发生什么。非常感谢您的提示。@Gorpik很高兴您发现它很有用,请不要忘记投票并接受答案:DI只是检查它是否有效,它确实有效。再次非常感谢。哦,看起来我就是这么做的。我正在修改我的
docker compose.yml
,看看会发生什么。非常感谢您的提示。@Gorpik很高兴您发现它很有用,请不要忘记投票并接受答案:DI只是检查它是否有效,它确实有效。再次非常感谢。