如何排查程序假死

2021-09-30 01:52:31 字數 899 閱讀 2797

首先,先找出那個假死的程序然後檢視狀態,用ps命令

ps aux|head -n 1;ps aux|grep process_niubi_hh.php

這裡說個小技巧,就是如何展示ps的表頭,可以看出我的命令裡其實是兩條命令組成,第一條是獲取頭一條,然後加個分號,最後再把需要獲取內容的命令拼上去,也就是說乙個分號,就能將兩條命令的內容拼在一起了

第二,檢視這個程序的開啟了哪些連線

從上圖可以看出,這個程序請求到了最後一步就停了,說明這個socket請求有問題,接下來開始排查這個socket

第三,排查這個socket連線了什麼

head-n 1/proc/net/tcp;grep7238424/proc/net/tcp

上圖中有兩個值需要關注,乙個是loca_address 本地位址,乙個是rem_address 遠端位址,相當於本地主機請求了遠端乙個位址的記錄,現在需要對遠端位址進行16進製制轉10進製,因為ip是每一段都是8位,這裡是16進製制,也就是要兩個兩個拿出來

比如17140a0a:14d3 這個要先切成  17 14 0a 0a :14d3(埠就直接4位數丟進去轉)

然後每一段單獨轉成10進製

就變成 23 20 10 10 : 5331,最後再反轉 10 10 20 23:5331=>10.10.20.23:5331

然後再去這台機器上看這個埠通不通,去看了下果然不通,就是因為這個問題導致程序卡住假死,就可以去運維的鍋了

Tomcat假死原因排查

tomcat假死?為什麼會假死呢,可能大多數人不會碰到這個問題,如果出現問題,重啟伺服器就好了,可是如果這個問題沒有解決的話,那麼就可能會存在相應的隱患,如果你的使用者量多,那麼必然你的請求量就高,這樣假死的發生頻率就會越來越高。而剛好我們線上也出現了這個問題,就是tomcat假死,是如何知道假死的...

linux程序假死的原因 linux 假死分析

所謂假死,就是能ping通,但是ssh不上去 任何其他操作也都沒反應,包括上面部署的apache也打不開頁面。作為乙個多工作業系統,要把系統忙死,忙到ssh都連不上去,也不是那麼容易的。尤其是現在還有fd保護 程序數保護 最大記憶體保護之類的機制。你可以fork很多程序,系統會變得很慢,但是ssh還...

Erlang 程序記憶體占用排查

注 output 指定輸出方式 interval 記憶體資訊重新整理間隔時間 lines 顯示記憶體記錄行數 sort 排序規則 上文指令基於記憶體用量倒排 引數名稱 描述dictionary 程序字典中所有的資料項 registerd name 註冊的名字 status 程序狀態 links 所有...