解决:max file descriptors [65535] for elasticsearch process is too low

鉴于此问题,尝试多中方法整理以下几个解决方案html

方案一:

elasticsearch安装后启动时候,遇到此问题vim

问题翻译过来就是:elasticsearch用户拥有的可建立文件描述的权限过低,至少须要65536;session

解决办法:app

#切换到root用户修改elasticsearch

vim /etc/security/limits.confui

# 在最后面追加下面内容.net

*** hard nofile 65536

*** soft nofile 65536

***  是启动ES的用户翻译

方案二:

ulimit -n 65535code

使用 ulimit -Hn 查看当前值,果真是65535,htm

ulimit -Hn

65535 

也就是说每次更新环境变量的时候limits.conf的hard nofile 131072设置被覆盖掉了
这就好办了,vi /etc/profile 将 ulimit -n 65535 行注释掉,退出从新进入当前用户,再使用 ulimit -Hn 查看当前值,已是131072了,设置成功!

执行

 ulimit -Hn 65536

验证

ulimit -Hn 

65536

再去启动elasticsearch,OK!

方案三:确保非root帐号打开文件数量也增大

1.打开/etc/security/limits.conf,在里面添加以下内容

* soft nofile 65536
* hard nofile 65536

 其中*表示全部用户  nofile表示最大文件句柄数,表示可以打开的最大文件数目

2.编辑/etc/pam.d/common-session,添加以下内容

vi /etc/pam.d/common-session

session required pam_limits.so 

3.编辑/etc/profile,添加以下内容
ulimit -SHn 65536

而后从新启动机器,再利用ulimit -n查看文件句柄数,发现文件句柄数变为65536

参考:

https://www.cnblogs.com/yidiandhappy/p/7714481.html

http://www.cnblogs.com/zhaohz/p/7814966.html

https://blog.csdn.net/chenbaoke/article/details/39231423