案例概要
本案例處理的是一個 Windows 應用程式,在約一個月連續運行之後才會當機。
重要的動作不是急著猜根因,而是先確定 要有哪些觀測點才能可信地把原因收斂下來。
症狀
- 當機只在長時間運行後才出現
- 失敗形態無法直接告訴我們問題是記憶體、控制碼,或其他
- 不可能乾等一個月,必須壓縮重現條件
限制
- 問題路徑牽涉到相機重連與異常情況下的行為
- 只靠正常路徑的日誌不夠
- 必須從時間軸觀察資源的成長,而不只是當機瞬間
觀測到的內容
Handle Count、Private Bytes、Thread Count等心跳指標- 圍繞 session 啟動、重連、關閉等的邊界日誌
- 意識到 create/open/register 與 close/dispose/unregister 成對關係的生命週期日誌
如何收斂問題
不把它當成模糊的「長期運行當機」,而是圍繞重連與異常路徑壓縮重現。
如此一來,把問題當作 控制碼洩漏調查 來處理就變得非常合理。
如何改善
- 強化監控,讓成長趨勢在最終當機前就可見
- 讓所有權邊界在日誌中更易追蹤
- 整理結果讓未來的異常路徑測試能夠建立其上
本案例連結的服務
本案例連結到針對難以重現的長期運行故障的 故障調查 & 根本原因分析,以及改善產品內部日誌、重連行為與運用可視性的 Windows 應用程式開發。