背景:
1)中介軟體應用集群cluster a,部署有服務svr_a和svr_b。
2)gateway
3)集群cluster b
gateway與cluster b之間通過域進行連線,cluster b將svr_c服務export到gateway。
svr_b為乙個wsl客戶端,svr_a呼叫svr_b,通過svr_b呼叫gateway上import的服務。
問題:理論上svr_a被呼叫後,應該能正常呼叫到cluster b的svr_c服務,但實際並不成功。
排查:1)首先檢視錯誤日誌和trace日誌,發現錯誤日誌中報svr_a服務錯誤,tperrno=11,tperrtext=tpesvcfail。
2)因為這套環境是新搭建的一套環境,所以重點排查系統與系統之間互動的情況。
3)集群機器比較多,為了便於排查,停掉集群中其他節點的server,只留最少的節點數和server數。
4)採用從svr_a發起檢查,因為之前gateway比較容易出問題,所以重點檢查gateway,採用檢查呼叫次數的方法。理論上每調一次svr_a服務,svr_b和svr_c都應該加1才對。但是svr_a服務被呼叫後,發現gateway上服務的呼叫次數並沒有加1。所以可以排除cluster b的問題,也可以排除gateway與cluster b之間鏈路的問題。繼續排查cluster a和gateway和兩者之間鏈路。
5)懷疑有沒有可能是配置檔案的問題,但是與生產系統配置逐一比對後發現沒有問題。
6)因為注意到svr_b的呼叫次數一直是0,突然來了個想法,就是如果把svr_b也停掉會是什麼情況呢?停掉之後,發現svr_a還是報tpesvcfail錯誤,如果想要呼叫的服務不存在,應該報tpenoentry錯誤才對,既然沒報這個錯,那麼可以說明跟svr_b沒有關係,跟svr_a和svr_b之間也沒有關係,只可能是svr_a的問題。
7)檢查svr_a,發現跟生產伺服器的檔案大小都不一樣。。。基本找到問題所在了,將svr_a與生產系統同步後,問題解決。
service啟動失敗問題排查
我的電腦在啟動時總會提示 failed to start load kernel modules 雖然不影響使用,可強迫症看了還是會覺得難受。所以,還是著手解決下,順便總結下linux下service啟動失敗時一般的排查方法。首先,檢視哪些服務啟動失敗 systemctl failed unit l...
服務宕機問題排查記錄
用jediscluster進行管道操作psetstr ps ef grep 查詢程序號,jstat gcutil 程序id 2000,top檢視當前記憶體占用 c檢視執行指令碼 free m 檢視機器可用記憶體,幾個命令,分析出當前機器空閒記憶體不足 修改 調整程式啟動的最大堆記憶體引數 修改程式,...
一次寫入es失敗問題排查
今下午一同事反饋說在 kibana 中沒看到日誌,但是在對應的日誌檔案中是能查到的。一開始以為是 kibana 跨時間的問題,但開啟日誌檔案看那條記錄,時間是沒啥問題的,距離上一條記錄前後也只相差10 min左右,而上一條記錄在 kibana 中是能找到的。上一條,kibana 中存在 問題日誌,k...