0

我需要在debian中增加elasticsearch的内存限制..请让我知道我应该在哪个文件中进行更改以增加它的内存..以及如何检查是否设置了内存限制...当我得到一个错误类似于:打开的文件太多请帮助...

提前致谢。

4

3 回答 3

3

设置内存的最佳方法是设置 ES_HEAP_SIZE 参数,并让它决定最小值和最大值。

对于 Ubuntu,只需打开 /etc/default 中的 elasticsearch 文件:

sudo vim /etc/default/elasticsearch

并确保以下行已设置或未注释,并将其设置为总内存的一半:

ES_HEAP_SIZE=4g

然后保存文件,然后重新启动 elasticsearch:

sudo service elasticsearch restart

有关设置堆大小的更多信息,您可以在此处查看这篇文章。授予指南告诉您只需使用 export 命令创建一个环境变量;但是,这对我不起作用,尽管 /etc/default/elasticsearch 文件可以工作,即使在重新启动后也是如此。

注意:不要将堆大小设置为超过 32Gb。对 heap_size 使用小数会破坏 Elasticsearch。如果您需要使用部分 Gb,请像这样使用 Mb ES_HEAP_SIZE=3750m:. 奇迹般有效。

于 2014-09-23T21:58:01.197 回答
2

Rajni 是绝对正确的。我和 OP 有同样的问题,并在服务脚本的开头附近找到了所有设置的值:

ES_HOME=/opt/elasticsearch
ES_MIN_MEM=256m
ES_MAX_MEM=2g
DAEMON=$ES_HOME/bin/elasticsearch
NAME=elasticsearch
DESC=elasticsearch
PID_FILE=/var/run/$NAME.pid
LOG_DIR=/var/log/$NAME
DATA_DIR=/var/lib/$NAME
WORK_DIR=/tmp/$NAME
CONFIG_FILE=$ES_HOME/config/elasticsearch.yml
于 2013-04-12T15:27:02.317 回答
1

大声笑,我的代表太低了,简单地回答:但我只想确认文件 /etc/init.d/elasticsearch 包含启动信息。MIN 和 MAX_MEM 是最小和最大堆大小

我很确定如果您在 systemd 上,等效文件将在 /etc/default/ 下

重新启动 elasticsearch 以使您的设置生效。如果您使用的是 systemd:sudo systemctl restart elasticsearch。如果由于设置错误而无法重启,sudo systemctl status elasticsearch

这个答案讨论了其他一些选项 如何更改 Elasticsearch 最大内存大小

于 2014-08-05T00:58:15.310 回答