首先,先找出那個假死的程序然後檢視狀態,用ps命令
ps aux|head -n 1;ps aux|grep process_niubi_hh.php
這裡說個小技巧,就是如何展示ps的表頭,可以看出我的命令裡其實是兩條命令組成,第一條是獲取頭一條,然後加個分號,最後再把需要獲取內容的命令拼上去,也就是說乙個分號,就能將兩條命令的內容拼在一起了
第二,檢視這個程序的開啟了哪些連線
從上圖可以看出,這個程序請求到了最後一步就停了,說明這個socket請求有問題,接下來開始排查這個socket
第三,排查這個socket連線了什麼
head
-n 1
/proc/net/tcp
;
grep
7238424
/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 所有...