Elasticsearch 忽略我的 JVM 堆大小设置
Elasticsearch ignores my JVM heap size settings
我在 Linux (Ubuntu) 的 Docker 容器内 运行 Elasticsearch。我遇到了很多 circuit_breaking_exception
问题,引用了 486.3mb 的限制;所以我决定稍微增加我的 JVM 堆大小。我的机器有 6 GB 物理内存,因此堆大小最多 3 GB 应该是安全的。
所以我去更改 jvm.options
中的设置。默认值为:
-Xms1g
-Xmx1g
我已将其更改为:
-Xms2g
-Xmx2g
转折点来了:不仅我不断得到相同的 circuit_breaking_exception
且大小限制相同; echo $ES_JAVA_OPTS
returns -Xmx512m -Xms512m
。这甚至不是默认设置。我也试过保留默认 jvm.options
并在 jvm.options.d
中创建一个新的 user.options
,结果相同。我错过了什么吗?我在这里做错了什么吗?
您可以使用 env var ES_JAVA_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
中设置它
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-compose-file
如official installation of ES using docker所示,您可以将其作为环境变量传递
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_JAVA_OPTS
环境变量值后需要重新启动docker容器
我在 Linux (Ubuntu) 的 Docker 容器内 运行 Elasticsearch。我遇到了很多 circuit_breaking_exception
问题,引用了 486.3mb 的限制;所以我决定稍微增加我的 JVM 堆大小。我的机器有 6 GB 物理内存,因此堆大小最多 3 GB 应该是安全的。
所以我去更改 jvm.options
中的设置。默认值为:
-Xms1g
-Xmx1g
我已将其更改为:
-Xms2g
-Xmx2g
转折点来了:不仅我不断得到相同的 circuit_breaking_exception
且大小限制相同; echo $ES_JAVA_OPTS
returns -Xmx512m -Xms512m
。这甚至不是默认设置。我也试过保留默认 jvm.options
并在 jvm.options.d
中创建一个新的 user.options
,结果相同。我错过了什么吗?我在这里做错了什么吗?
您可以使用 env var ES_JAVA_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
中设置它https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-compose-file
如official installation of ES using docker所示,您可以将其作为环境变量传递
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_JAVA_OPTS
环境变量值后需要重新启动docker容器