1. 程式人生 > >記一次和Tomcat有關的Too many open files錯誤

記一次和Tomcat有關的Too many open files錯誤

前言

最近在公司開發推送系統相關的專案,需要在單臺Linux伺服器上支援幾十萬到上百萬的連線,為此,修改了作業系統的檔案描述符上限。

相關修改操作可參考:

修改並重啟後使用ulimit -a檢視發現open-file變大。之後,使用netty簡單構建一個服務端demo,經測試證明該demo能夠支援多於1024個連線(系統初始open-file為1024),修改有效。

但將應用打成war包通過tomcat啟動後,最多隻能支援略多於5000個連線,檢視/proc/${pid}/limits檔案,發現檔案描述符上限為5000,並未隨著系統設定而改變,同時其它JVM程序的檔案描述符上限更改已經生效。

網路上眾多參考文章沒有給出相關的答案,後來google到了這麼一篇,明天試試,希望有用:

大意是與守護程序有關,需要採用一些work-around的方法。

具體操作:

1.通過程序pid找到對應的使用者名稱,例如tomcat

2.在/etc/security/limits.d下找到對應使用者名稱conf檔案,修改檔案描述符大小

3.重啟應用,驗證生效