我們處理這類故障調查
- 極少發生的通訊停滯
- 只在長時間運轉後才發生的當機
- 重現率很低的設備連動問題
- 記憶體洩漏、控制代碼洩漏、執行緒不斷增加
- 日誌不足,無法追出原因的問題
平常一切正常、只是偶爾發生故障的這類問題,釐清問題範圍的方法本身就很重要。
調查的進行方式
- 首先把應用程式內部的因素,和通訊、設備、OS 的因素分開。
- 接著增加日誌、指標、封包、控制代碼數量、例外路徑等可觀測的資訊。
- 在此基礎上壓縮重現條件,整理出原因與防止再發的對策。
容易處理的主題
- TCP / Socket 通訊的停滯或延遲
- 與產業用相機或周邊設備的通訊異常
- 含 COM / ActiveX 的既有軟體變得不穩定
- 只在長期運轉時才發生的洩漏或資源耗盡
- 因缺少異常情境測試或日誌設計而難以調查
在這些情況下能派上用場
- 還不知道原因在應用程式端還是通訊端
- 重現需要數小時到數週
- 日誌是有,但因果串不起來
- 想在改修之前,先整理應該觀測什麼
包含防止再發在內的支援
故障調查不是找到原因就結束,重要的是打造出下次能更快追查的狀態。
因此,我們會視需要一併推進以下整備。
- 重新檢視日誌項目
- 以 session / operation 為單位附加脈絡
- 建置異常情境測試基礎
- 整理成能追蹤資源生命週期的形式