上午检查系统应用elasticsearch,发现进程挂死,重启后,启动失败,检查启动日志,报错:java.lang.OutOfMemoryError: unable to create new native thread。
简单理解为,操作系统无法创建新的线程,最明显的感觉应该是操作系统打开文件数设置过小导致无法创建新的文件了。
登录用户通过su - 用户 的方式切换至部署用户时,报错:linux提示su - 资源暂时不可用 ,使用ssh 用户@localhost 的方式登录部署用户。
第一步,检查打开文件数
经发现的确是检查文件数过小,仅为1024。
第二步,备份limits.conf
sudo cp /etc/security/limits.conf /etc/security/limits.conf_bak
第三步,设置limits.conf
sudo vim /etc/security/limits.conf
如下内容配置,如果相关参数已存在,则改变数量,如参数不存在,则新增如下内容。
* soft nofile 655350
* hard nofile 655350
* hard nproc 655350
* soft nproc 655350
第四步,重启sshd服务
sudo systemctl restart sshd.service
第五步,检查打开文件数配置是否生效
ulimit -a或ulimit -n