分析錯誤:socket accept failed too many open files


步驟:
1、--查看當前各個進程打開的文件句柄數,其結果的第一列表示句柄數,第二列表示進程號
lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more

2、--查看單個進程能夠打開的最大文件句柄數量(socket連接也算在里面)
ulimit -n

3、對比1和2的結果,如果1接近或超過2了,需要將2的配置調大
ulimit -n <最大文件句柄數>

4、如果想知道打開的文件句柄數最多的進程是哪個應用程序,可以使用如下命令
ps -aef|grep <進程號>

5、如果句柄數調的非常大了,還是不行,可能需要看看/proc/sys/fs/file-max中的值,該值表示系統全局的可用句柄數,可修改
vim /proc/sys/fs/file-max

6、對於正在使用(分配出去)的所有的句柄數、未使用的所有的句柄數、可使用的最大的句柄數這3個值,可以通過以下只讀文件查看
vim /proc/sys/fs/file-nr
提示:當分配出去的句柄數接近最大句柄數,而“未使用的句柄數”遠大於零時,表明你遇到了一個“句柄”使用高峰,這意為着你不需要增加file-max的值。
原文如下:
When the allocated file handles come close to the maximum, but the number of unused file handles is significantly greater than 0,
you’ve encountered a peak in your usage of file handles and you don’t need to increase the maximum.


免責聲明!

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



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