對于云上的用戶來說,業(yè)務(wù)日志里面報超時問題處理起來往往比價棘手,因為1) 問題點可能在云基礎(chǔ)設(shè)施層,也有可能在業(yè)務(wù)軟件層,需要排查的范圍非常廣;2)
這類問題往往是不可復(fù)現(xiàn)問題,抓到現(xiàn)場比較難。在本文里就分析下如何來分辨和排查這類問題的根本原因。
業(yè)務(wù)超時 != 網(wǎng)絡(luò)丟包
由于業(yè)務(wù)的形態(tài)不同,軟件實現(xiàn)語言和框架的不同,業(yè)務(wù)日志中打印出的信息可能是各不相同,比如如下關(guān)鍵字:
"SocketTimeOut", "Read timed out", "Request timeout" 等
從形式看都屬于網(wǎng)絡(luò)超時這一類,但是需要明確一個概念:這類問題是發(fā)生的原因是請求超過了設(shè)定的timeout時間,這個設(shè)置有可能來自客戶端,服務(wù)器端或者網(wǎng)絡(luò)中間節(jié)點,這是直接原因。網(wǎng)絡(luò)丟包可能會導(dǎo)致超時,但是并不是充分條件??偨Y(jié)業(yè)務(wù)超時和網(wǎng)絡(luò)丟包的關(guān)系如下:
網(wǎng)絡(luò)丟包
熱門工具 換一換