原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/setting-system-settings.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/setting-system-settings.html

配置系统设置

在哪里配置系统设置取决于你用来安装 Elasticsearch 的软件包以及你使用的操作系统。

使用 .zip.tar.gz 包时,可以配置系统设置为:

当使用RPM 或 Debian包时,大部分设置在 系统配置文件 中。 但是,使用 systemd 的系统要求在systemd配置文件 中指定系统限制。

ulimit

在Linux系统上, ulimit 可用于临时更改资源限制。 在切换到运行 Elasticsearch 的用户之前,通常需要将限制以 root 身份运行。 例如,要将打开文件句柄的数量(ulimit -n)设置为 65,536,可以执行以下操作:

sudo su  
ulimit -n 65535 
su elasticsearch 

切换到 root 权限。

更改打开文件的最大数量。

切换到 elasticsearch 用户以启动 Elasticsearch。

新限制仅在当前会话期间生效。

可以通过 ulimit -a查阅所有当前应用的限制。

/etc/security/limits.conf

在 Linux 系统上,可以通过编辑 /etc/security/limits.conf 文件为特定用户设置永久限制。 要将用户 elasticsearch 打开文件的最大数量设置为 65,535,请在 limits.conf 文件中添加以下行:

elasticsearch  -  nofile  65535

此更改仅在下次以用户 elasticsearch 身份打开新会话时生效。

Ubuntu 和 limits.conf

Ubuntu忽略由 init.d 启动的进程的 limits.conf文件。 要启用 limits.conf 文件,编辑 /etc/pam.d/su 并注释掉下面的行:

# session    required   pam_limits.so

Sysconfig 文件

当使用 RPM 或 Debian 包时,可以在系统配置文件中指定系统设置和环境变量,该文件位于:

RPM

/etc/sysconfig/elasticsearch

Debian

/etc/default/elasticsearch

但是,对于使用 systemd 的系统,系统限制需要使用 systemd 去指定。

Systemd 配置

当在使用 systemd 的系统上使用 RPM 或 Debian 包时,必须通过 systemd 指定系统限制。

systemd 服务文件(/usr/lib/systemd/system/elasticsearch.service) 包含默认情况下应用的限制。

要覆盖这些设置,添加一个叫 /etc/systemd/system/elasticsearch.service.d/override.conf 的文件 (或者,你可以运行 sudo systemctl edit elasticsearch ,它会在你的默认编辑器中自动打开文件)。 在此文件中设置任何更改,例如:

[Service]
LimitMEMLOCK=infinity

完成后,运行以下命令来重新加载:

sudo systemctl daemon-reload