如何在Debian中为elasticsearch设置内存限制?

时间:2012-10-18 12:02:16

标签: elasticsearch

我需要增加debian中弹性搜索的内存限制。请让我知道我应该在哪个文件中进行更改以增加内存..另外如何检查是否设置了内存限制...因为我得到了一个错误: 打开的文件太多 Plz帮助...

提前致谢。

3 个答案:

答案 0 :(得分:3)

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

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

sudo vim /etc/default/elasticsearch

并确保设置或取消注释以下行,并将其设置为总ram的一半:

ES_HEAP_SIZE=4g

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

sudo service elasticsearch restart

有关设置堆大小的更多信息,您可以查看this article here。该指南告诉您只需使用export命令创建环境变量;但是,这对我不起作用,尽管/ etc / default / elasticsearch文件即使在重新启动后也能正常工作。

注意:不要将堆大小设置为超过32Gb。对heap_size使用小数将破坏Elasticsearch。如果您需要使用部分Gb,那么请使用Mb:ES_HEAP_SIZE=3750m。像魅力一样。

答案 1 :(得分: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

答案 2 :(得分:1)

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

我非常确定如果您使用systemd,等效文件将位于/ etc / default /

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

这个答案讨论了其他一些选择 How to change Elasticsearch max memory size