too many open files

中午我的Linode服務器又犯了老毛病,所有網站都不能訪問。是因爲服務器的nginx不停出錯,輸出的錯誤日誌(error.log)塞滿了整個分區。刪除掉錯誤日誌文件並重啓nginx以後可以恢復正常。
我查看了一下錯誤日誌的內容,發現全部是“Too many open files while accepting new connection on 0.0.0.0:80”。用Too many open files搜了一下,找到了一個解決方案。
先查了一下文件系統最大可打開文件數:
root@li55-4:~# cat /proc/sys/fs/file-max
70133
於是用ulimit修改了一下:
root@li55-4:~# ulimit -n 10240
這下把最大打開文件數從1024提高到了10240,應該夠用了吧。
最後把”ulimit -n 10240″這一行增加到/etc/rc.local中,以保證每次系統啓動都能生效。
這樣做是否有效,還有待後續觀察。
經過實測,在rc.local中加入這一行是沒有效果的,使用ulimit -n 10240進行修改也僅能影響到當前的shell。對這個問題,老王做過的探索,請移步此處查看。修改後,需要重啓一次方可生效。
感謝智勇發現問題。

 

遇到 ``Too many open files (打開文件太多)" 的錯誤, 怎樣增加同時打開文件的允許數目?

通常有至少兩個資源限制了同時打開文件的數目: 操作系統可用的低層  ``文件說明符" 或 ``文件句柄" 的數目; 和標準 stdio  函數庫可用的 FILE 結構數目。兩個條件必須符合。在 MS-DOS 下, 可以通過設置 CONFIG.SYS, 可以控制系統文件 handle 的數目。一些編譯器附有增加 stdio 的 FILE 結構數目的指令  (也許是一兩個源文

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