Linux
一段時間後的Ubuntu自定義伺服器:對等方重置連接
我有一個 linux 伺服器程序。我注意到在2 或 3 天后,伺服器停止響應。當我查看伺服器日誌時,我發現“對等連接重置”消息。
我必須重新啟動伺服器。一切正常,然後在2 或 3 天后,出現同樣的問題。
任何幫助,將不勝感激。
編輯:對不起,有點描述。
這是我編寫的一個接受 TCP 連接的簡單伺服器。它在 C# 中,我使用單聲道。我按如下方式啟動伺服器:nohup mono StartServer.exe &
在與日誌相同的目錄中創建一個名為 nohup.out 的文件。2-3天后,我發現單聲道程序仍然存在。但是客戶端(silverlight 客戶端)無法連接到伺服器:它們會收到“拒絕訪問”消息。實際上,即使伺服器關閉,也會收到“拒絕訪問”消息。所以我猜,伺服器沒有響應。
當我查看 nohup.out 文件時,我發現錯誤消息“對等方重置連接”。
實際上,我最初計劃將它託管在 Windows 伺服器上,但發現它在 linux 伺服器上也能正常工作。由於我對 linux 不是很有經驗,我在想我是否錯過了一個明顯的配置。
令我困惑的是,一切正常,直到大約 3 天。
我正在對其進行負載測試,使一個客戶端與伺服器有多個連接,並發現我在一天內遇到了同樣的錯誤。連接數約為 30。
我會跑的
# netstat -anp
和
# lsof -n
查看是否存在連接或文件句柄洩漏。我懷疑連接或文件沒有正確關閉,並且它在一段時間後通過了 1024 個打開文件(這是一次打開文件的預設限制,除非用 ulimit 更改) - 這再次會阻止它創建新的連接。