Elasticsearch:最大虚拟内存区域 vm.max_map_count [65530] 太低,增加到至少 [262144] [英] Elasticsearch: Max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

查看:21
本文介绍了Elasticsearch:最大虚拟内存区域 vm.max_map_count [65530] 太低,增加到至少 [262144]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对 ElasticSearch 的 systemd 配置有疑问.

I have an issue with a systemd config for ElasticSearch.

[Unit]
Description=platform-elasticsearch
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
User={{ app_user }}
Group={{ app_group }}
Environment=ES_PATH_CONF=/platform/opt/elasticsearch-{{ elasticsearch.version }}/config
Environment=JAVA_HOME=/platform/opt/jdk{{ jdk.major_version }}_{{ jdk.minor_version }}
LimitAS=infinity
LimitRSS=infinity
LimitCORE=infinity
LimitNOFILE=100000
LimitMEMLOCK=100000
StandardOutput=syslog
StandardError=syslog
WorkingDirectory=/platform/var/app/elasticsearch
ExecStart=/platform/opt/elasticsearch-{{ elasticsearch.version }}/bin/elasticsearch
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s -TERM $MAINPID
TimeoutStopSec=60
# When a JVM receives a SIGTERM signal it exits with code 143
SuccessExitStatus=143 0
Type=simple
Restart=on-failure
RestartSec=10
PIDFile=/platform/var/run/elasticsearch.pid

[Install]
WantedBy=multi-user.target

这似乎不能让我配置 vm.max_map_count 设置.

This does not seem to let me configure the vm.max_map_count setting.

Jul 20 14:53:46 scratchpad elasticsearch: [2018-07-20T14:53:46,359][INFO ][o.e.b.BootstrapChecks    ] [1oQJNUK] bound or publishing to a non-loopback     address, enforcing bootstrap checks
Jul 20 14:53:46 scratchpad elasticsearch: ERROR: [1] bootstrap checks failed
Jul 20 14:53:46 scratchpad elasticsearch: [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
Jul 20 14:53:46 scratchpad elasticsearch: [2018-07-20T14:53:46,376][INFO ][o.e.n.Node               ] [1oQJNUK] stopping ...
Jul 20 14:53:46 scratchpad elasticsearch: [2018-07-20T14:53:46,414][INFO ][o.e.n.Node               ] [1oQJNUK] stopped
Jul 20 14:53:46 scratchpad elasticsearch: [2018-07-20T14:53:46,414][INFO ][o.e.n.Node               ] [1oQJNUK] closing ...
Jul 20 14:53:46 scratchpad elasticsearch: [2018-07-20T14:53:46,445][INFO ][o.e.n.Node               ] [1oQJNUK] closed
Jul 20 14:53:46 scratchpad systemd: platform-elasticsearch.service: main process exited, code=exited, status=78/n/a

具体问题如下:

Jul 20 14:53:46 scratchpad elasticsearch: [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

我已经能够使用以下命令在命令行上启动弹性搜索:

I have been able to start elastic search on the commandline with the following:

sudo su -c 'echo 262144 > "/proc/sys/vm/max_map_count"' &&  
export JAVA_HOME=/platform/opt/jdk1.8.0_181 && 
export ES_PATH_CONF=/platform/opt/elasticsearch-6.3.1/config && 
/platform/opt/elasticsearch-6.3.1/bin/elasticsearch 

谁能告诉我为什么 LimitMEMLOCK=100000 不起作用,以及如何在 systemd 中有效地设置 max_map_count.

can anyone tell me why LimitMEMLOCK=100000 does not work, and how I can effectively set max_map_count from within systemd.

我还尝试设置以下内容:

I have also tried to set the following:

cat /etc/security/limits.d/30_elastic_limits.conf

vagrant       hard    nofile     500000
vagrant       hard    memlock     262144

但这似乎被 systemd 完全忽略了.

but this seems to be totally ignored by systemd.

推荐答案

Vivek 的回答

sysctl -w vm.max_map_count=262144

是正确的,但是,该设置仅在会话期间持续.如果主机重启,设置将重置为原始值.

is correct, however, the setting will only last for the duration of the session. If the host reboots, the setting will be reset to the original value.

如果你想永久设置这个,你需要编辑/etc/sysctl.conf并将vm.max_map_count设置为262144.

If you want to set this permanently, you need to edit /etc/sysctl.conf and set vm.max_map_count to 262144.

当主机重新启动时,您可以通过运行sysctl vm.max_map_count

When the host reboots, you can verify that the setting is still correct by running sysctl vm.max_map_count

这篇关于Elasticsearch:最大虚拟内存区域 vm.max_map_count [65530] 太低,增加到至少 [262144]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆