ES生产环境下的操作系统配置的作用是为了解除系统资源使用上的限制。
ulimit在Linux操作系统中,ulimit可以临时解除可以使用资源的限制。要配置ulimit需要切换到root用户。
例如临时设置可以打开的文件句柄数:
sudo su #切换到root用户 ulimit -n 65535 #设置可打开的最大文件句柄数 su elasticsearch #切回elasticsearch用户
这只在当前会话有效!
你可以使用命令ulimit -a查看是否设置成功!
$ ulimit -a .... max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65535 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 ....
永久配置
在Linux系统中,可以将limit配置写入到/etc/security/limits.conf文件中,以达到永久配置的目的。
在该文件中可以单独为某个用户设置相关配置,例如为elaticsearch用户设置允许打开的最大文件句柄数为65535:
##* soft core 0 #root hard core 100000 elasticsearch - nofile 65535
保存后,配置将在elasticsearch用户打开一个新的会话时自动生效!
Ubuntu下需要注意:
有些ubuntu版本默认忽略limits.conf文件,你必须手动修改/etc/pam.d/su文件以便启用limits.conf文件。去掉下面行的注释(去掉#):
# session required pam_limits.so
如果你使用zip或者.tar.gz包安装ES,你完全可以使用上面的配置方法。
使用RPM或Debian软件包时,大多数系统设置都在系统配置文件中设置。但是,使用systemd的系统需要在systemd配置文件中指定系统限制。配置文件位置/usr/lib/systemd/system/elasticsearch.service。该文件包含了默认的配置。
你可以覆盖默认配置,创建新文件/etc/systemd/system/elasticsearch.service.d/override.conf,例如:
[Service] LimitMEMLOCK=infinity
执行命令使其生效:
sudo systemctl daemon-reload



