公司有一台主機連續兩天出現異象。剛上班的尖峰時間出現IIS網站無回應,使用遠端桌面登入觀察到桌面反應遲緩,但幾個系統服務與網路磁碟機功能正常,IISRESET後問題仍未消除。進一步用 telnet 127.0.0.1 80 測試,得到的結果是TCP連線一建立就被切斷,主機上有另一個走8080 Port的PHP網站,telnet 127.0.0.1 8080 也是一接通馬上斷線,感覺問題在比IIS更底層的程序。時處尖峰不便重開機,而沒回應的網站有替代主機可用,就先按兵不動,約莫過了半小時,IIS自己醒來又一切如常。

不料,同樣的狀況隔天再上演一次,一樣出現 telnet 127.0.0.1 80 跟 8080 一連上就斷線,等了一個小時狀況仍未恢復,感覺狀況不太妙,呼叫同事進場協助。

同事依經驗砍了 Task Manager 中的mssearch程序(Sharepoint的檢索功能),此時發現有個 DW20.exe 執行中,涉嫌重大。

DW20(Dr.Watson)是 Windows 2003/XP 的錯誤報告程序,負責在程式發生嚴重當機時跳出來蒐集資訊(例如:錯誤代碼、呼叫堆疊、當時的記憶體內容等),差不多像是法醫寫驗屍報告。傾印記憶體等程序會耗用大量CPU及磁碟資源,有可能就是導致IIS 異常、甚至 TCP 連線無法建立的元凶。

IIS 與 PHP 在砍除 DW20 後,隨即恢復正常。因此學到一項經驗:DW20或Windows Error Reporting(Vista之後WER取代Dr.Watson)的錯誤報告產生程序可能耗用大量系統資源導致系統運作異常,故偵錯時可優先識別工作管理員中是否有DW20.exe或WerFault.exe出沒,排除記憶體傾印程序導致異常的狀況,特此筆記。

後記:今天剛好在我的PC也遇到一起Windows桌面凍結無反應的狀況,工作管理員顯示CPU不高,但發現WerFault.exe的蹤跡,凍結狀態在WerFault.exe結束後消失,相似案例+1。


Comments

# by wellxion

可是既然會出現錯誤報告 應該還是有更根本原因導致的吧?

# by Jeffrey

to wellxion, 是的,導致DW20啟動的原因已另簽他字案偵辦,在C:\WINDOWS\PCHEALTH\ERRORREP\QSignoff找到一些零碎錯誤報告,但時機點不足以構成明確證據,案情仍膠著。

Post a comment