“java.io.FileNotFoundException Too many open files”報錯處理

 

    在開發中遇到了部署到服務器的拋出這個異常,直接導致了springboot啓動失敗,而在其他的機器正常,所以應該與服務器的機器配置問題有關,這個問題出現是由於文件描述符不夠了,出現這個問題需要檢查兩點:

         1.是否自己的應用開啓過多的連接

         2.是否自己的機器設置的limit太低

   查看文件描述符大小:

修改文件描述符大小:

方法1,只對當前session有效,設置限制爲62235:

ulimit -HSn 62235


方法2,永久有效:

在/etc/security/limits.conf加入

* - nofile 65535


   內核參數對文件描述符也有限制,文件描述符的值不能大於內核的限制。

     查看內核參數中文件描述符的值


     修改內核參數:

sysctl -w fs.file-max=65535

    我們可以使用lsof命令查看某個進程到底打開了多少個文件

lsof -p 進程號

    參考資料:

https://linux.101hacks.com/unix/java-too-many-open-files/

https://blog.csdn.net/u010837612/article/details/79564573

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章