ElasticSearch生产环境优化之内存配置

系统环境

  1. Elasticsearch版本:7.6.2,安装方式为:rpm
  2. OS版本:CentOS Linux release 8.1.1911 (Core)

修改配置

# 安装之后系统默认配置文件位置:
vim /etc/elasticsearch/elasticsearch.yml
# 修改 bootstrap.memory_lock: true

修改完成后,此时启动系统会报错:memory locking requested for elasticsearch process but memory is not locked

解决办法:

首先第一步:vim /etc/security/limits.conf 添加如下内容

* hard nofile 65536
* soft nofile 65536
* hard nproc 65536
* soft nproc 65536
* hard memlock unlimited
* soft memlock unlimited

上面修改需要重启生效,若想立马生效则执行:

ulimit -n 65536 && ulimit -u 65536 && ulimit -l unlimited

第二步:vim /usr/lib/systemd/system/elasticsearch.service 添加配置项:LimitMEMLOCK=infinity ,然后执行下面命令使之生效

systemctl daemon-reload 

第三步: 设定我们允许elasticsearch锁定的最大占用的内存大小,这里我们暂设定为2G,根据实际情况修改 MAX_LOCKED_MEMORY=2147483648

mkdir "-p" /etc/systemd/system/elasticsearch.service.d/ && echo "MAX_LOCKED_MEMORY=2147483648" >/etc/systemd/system/elasticsearch.service.d/override.conf

这样我们既优化了ElasticSearch以更高效率运行,又保证内存占用在我们的可控范围内。当然对于JVM的配置比较简单按需配置即可,这里不作讨论。

Leave a Reply


正在读取数据……