我需要在debian中增加elasticsearch的内存限制..请让我知道我应该在哪个文件中进行更改以增加它的内存..以及如何检查是否设置了内存限制...当我得到一个错误类似于:打开的文件太多请帮助...
提前致谢。
我需要在debian中增加elasticsearch的内存限制..请让我知道我应该在哪个文件中进行更改以增加它的内存..以及如何检查是否设置了内存限制...当我得到一个错误类似于:打开的文件太多请帮助...
提前致谢。
设置内存的最佳方法是设置 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
:. 奇迹般有效。
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
大声笑,我的代表太低了,简单地回答:但我只想确认文件 /etc/init.d/elasticsearch 包含启动信息。MIN 和 MAX_MEM 是最小和最大堆大小
我很确定如果您在 systemd 上,等效文件将在 /etc/default/ 下
重新启动 elasticsearch 以使您的设置生效。如果您使用的是 systemd:sudo systemctl restart elasticsearch。如果由于设置错误而无法重启,sudo systemctl status elasticsearch
这个答案讨论了其他一些选项 如何更改 Elasticsearch 最大内存大小