设置环境变量后,Elasticsearch会报告默认堆内存大小

时间:2014-11-25 13:56:00

标签: memory elasticsearch jvm heap

为了在Windows框中增加Elasticsearch的JVM堆大小,我定义了以下环境变量:

ES_HEAP_SIZE =6克

(机器总共有12G RAM。)

我已重启ES并使用_nodes / stat HTTP GET命令查询其内存使用情况。但是,它似乎仍在使用1GB:

记得:{

heap_used_in_bytes: 1032367576,
heap_used_percent: 99,
heap_committed_in_bytes: 1037959168,
heap_max_in_bytes: 1037959168,
...

重启后,ES不应该调整其堆内存大小吗?

4 个答案:

答案 0 :(得分:10)

来自running ES as a service on windows的说明:

  

请注意,安装期间可用的环境配置选项将被复制,并将在服务生命周期中使用。这意味着除非重新安装服务,否则在安装后对它们所做的任何更改都将被取消。

如果您不想卸载并重新安装,可以使用服务管理器进行更改。运行>service manager

然后选择“Java”选项卡

Java Tab

更改内存池设置,点击“应用”并重新启动服务。

enter image description here

答案 1 :(得分:6)

卸载并重新安装Elasticsearch Windows服务后,它正确地增加了JVM堆大小。只是重新启动它而不重新安装服务不起作用。

答案 2 :(得分:0)

对于弹性搜索1.5

执行此操作的一种方法是将/bin/elasticsearch.in.sh文件编辑为默认为1g的其他值。对于您的示例,请更改ES_MAX_MEM=1g的{​​{1}}。编辑完成后,重新启动弹性搜索,你应该很好。

ES_MAX_MEM=6g

答案 3 :(得分:0)

要避免重新安装服务,您可以直接更改注册表中的值。找到它们有点棘手:

enter image description here

当然,您必须在更改这些设置后重新启动服务。