確認是否有socket洩露

2021-09-05 20:31:13 字數 542 閱讀 7298

問題定位步驟:

1、   用root帳戶 遍歷 /proc/程序id/fd目錄,如果該目錄下檔案數比較大(如果大於10,一般就屬於socket洩漏),根據該程序id,可以確認該程序id所對應的名稱。

2、   重啟程式恢復服務,以便後續查詢問題。

3、   strace 該程式並記錄strace資訊。strace –p 程序id >>/tmp/stracelog.log 2>&1

4、   檢視 /proc/程序id/fd 下的檔案數目是否有增加,如果發現有增加,記錄上乙個socket編號,停止strace

5、   確認問題**的位置。開啟/tmp/stracelog.log,從尾部向上查詢close(socket編號)所在行,可以確認在該次close後再次建立的socket沒有關閉,根據socket連線的server ip可以確認問題**的位置。

另一種方法:判斷是否有socket洩漏:

lsof | grep "can't identify protocol"

如果存在很多,則代表socket洩漏,同時會顯示哪個程序使用的sock未關閉。

確認是否有socket洩露

問題定位步驟 1 用root帳戶 遍歷 proc 程序id fd目錄,如果該目錄下檔案數比較大 如果大於10,一般就屬於socket洩漏 根據該程序id,可以確認該程序id所對應的名稱。2 重啟程式恢復服務,以便後續查詢問題。3 strace 該程式並記錄strace資訊。strace p 程序id...

UWP 確認是否有彈窗顯示

當應用已存在彈窗時,再顯示其他彈窗,會提示 某個非同步操作沒有正常啟動。only a single contentdialog can be open at any time.at windows.ui.xaml.controls.contentdialog.showasync at at syst...

C 確認時間格式是否正確

我設定的傳入時間格式為223344,即22點33分44秒,但是在往資料庫裡傳入時間時會發現有奇怪的錯誤,比如時間不能自動更新出現226022 22點60分22秒這樣的資料,還有小數點資料比如0.375一類的資料,這些都是不符合規範的資料,我需要將它們找出來 public static bool ti...