解決java.io.IOException: Too many open files報錯問題


周一來了之后發現 某個jar包服務報錯 一直提示
java.io.IOException: Too many open files
 
意思是文件句柄打開超過限制,導致服務不可用
 
查看了下 系統默認的是 

 

 百度上很多文章都說是因為系統默認的是1024太小所致,修改

/etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536
修改完成保存,重啟服務器
 
但系統已經非常大了,而程序實際打開的也不過4632
而查看服務所打開的 也不過4000多
 
lsof -p 21667 |wc -l
4632
 
所以問題不在這
 

 

 

果然程序默認最大能打開的文件句柄是4096 報錯原因找到了 ,通過修改該文件的配置解決本次問題。
 
但這不是根本解決問題,根本問題應該是開發寫代碼的時候往往就會粗心的忘記對Connection、Session、Socket、節點流和處理流等進行關閉操作,而linux下對文件操作數量有限制,當超過默認的最大打開文件數量時,就會報Too many open files錯誤。
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM