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