部署在LINUX上的SSO服務器近日每隔幾天就會當掉,查看日志有這樣的錯誤:java.io.IOException: Too many open files。網上查了下,說是由於linux有打開文件句柄的限制。可以使用ulimit -a 查看當前用戶可最大打開的文件句柄數,如果沒有設的話默認值是1024,並可以通過ulimit -u xxx進行修改。但是這個修改如果是在通過SSH工具進行登錄的客戶端窗口上做的話,只能暫時生效,當窗口一關閉,下次看還是1024這個默認值。如果要永久生效,必須修改/etc/security/limits.conf文件,在上面加入
* - nofile 204 這樣就可以一直生效了。
注:1.(此時type用“-”,表示hard和soft同時設定。domain設置為星號代表全局,也可以針對不同的用戶做出不同的限制)
2. 不過之前啟動過的程序要重新啟動才能使用新的值。