ref: https://medium.com/100-days-of-linux/how-to-deal-with-too-many-open-files-log-storm-c617ba84143b
本文是一個經驗分享文,作者分享其 HTTP Server 遇到 599: Network Connection Timed out Error 錯誤時的除錯經驗。
作者發現到該錯時,趕緊檢查 Server 的錯誤訊息然後得到了下列內容
HTTP: Accept error: accept tcp [::]:
這個錯誤訊息非常明確,告知該 Server 開啟太多檔案了,導致沒有辦法繼續處理後續的網路請求。
不過對於不熟悉 Linux 系統設計的使用者來說這個錯誤訊息就不夠明顯,實際上 Linux 系統內所有的網路 Socket 底層都是一個又一個檔案結構(FD),所以該錯誤訊息也可以解釋為該 Server 開啟了過多的 Socket ,已經超過系統設定上限。
作者使用下列指令來找到當前開啟的 Socket(FD) 數量
lsof -u
為了解決這個問題,作者認為有兩個方向可以去嘗試
1. 提高整個 Server 能夠開啟的 Socket 數量上限
2. 確保 Server 將所有卡住沒使用的 Socket 都清除收回
後半部分文章作者介紹如何使用 ulimit 這個指令來觀察系統當前的設定,包含soft limit 以及 hard limit 兩種類型的差別,如何針對 socket 的部分來調高設定。
對於這方面有興趣的讀者可以閱讀一下,本篇文章滿短的,很快就可以消化完畢
「linux open files」的推薦目錄:
- 關於linux open files 在 矽谷牛的耕田筆記 Facebook 的精選貼文
- 關於linux open files 在 How to open files using terminal - YouTube 的評價
- 關於linux open files 在 how to find the number of open files per process 的評價
- 關於linux open files 在 Too many open files in linux we are closing file descriptor 的評價
- 關於linux open files 在 Linux see number of open files allowed per process (too many ... 的評價
- 關於linux open files 在 File Descriptor and Open File | Complete Think 的評價
linux open files 在 how to find the number of open files per process 的推薦與評價
On Linux, /proc/<pid>/fd is a special directory that contains one magic symlink file for each fd that the process has opened. ... <看更多>
linux open files 在 How to open files using terminal - YouTube 的推薦與評價
Transcript · 60 Linux Commands you NEED to know (in 10 minutes) · 40 Windows Commands you NEED to know (in 10 Minutes) · 50 macOS Tips and Tricks ... ... <看更多>