配置系统设置编辑

配置系统设置的位置取决于您用于安装 Elasticsearch 的软件包以及您使用的操作系统。

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

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

ulimit编辑

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

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

对于由 init.d 启动的进程,Ubuntu 会忽略 limits.conf 文件。要启用 limits.conf 文件,请编辑 /etc/pam.d/su 并取消注释以下行

# session    required   pam_limits.so

系统配置文件编辑

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

RPM

/etc/sysconfig/elasticsearch

Debian

/etc/default/elasticsearch

但是,需要通过 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