前提:linux x86_64服务器 es使用rpm包进行安装(自己本地打包的es的免安装包,生成服务)
报错:s启动错误max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
当在生产环境进行es启动时,由于es会自动进行bootstrap check,所以当用户使用ssh连接服务器时,即使修改etc/security/limits.conf文件中的* soft nofile 65536 * hard nofile 65536后也会存在不生效的问题。
此时,网上的答案就无法生效了
通过查找问题答案,猜测的原因(还望大神赐教具体原理):
使用sshd进行远程服务器时,由于每次的连接都是继承自父进程,所以每次的连接都会默认继承父的限制,也就是nofile 1024~4096
通过命令查看:systemctl show sshd |grep '^Limit'
可以看出LimitNOFILE=4096
参考文档:Linux Limit相关内容设置大全(值得收藏) - 自由早晚乱余生 - 博客园
此时,针对单服务进行,例如mysql的服务:
es的服务可参考此。



