特征:服務器正常CPU消耗應該在75%以下,而且CPU消耗應該是上下起伏的,出現這種問題的服務器,CPU會突然一直處100%的水平,而且不會下降。查看任務管理器,可以發現是DLLHOST.EXE消耗了所有的CPU空閑時間,管理員在這種情況下,只好重新啟動IIS服務,奇怪的是,重新啟動IIS服務后一切正常,但可能過了一段時間后,問題又再次出現了。
直接原因:
有一個或多個access數據庫在多次讀寫過程中損壞,微軟的MDAC系統在寫入這個損壞的ACCESS文件時,asp線程處于BLOCK狀態,結果其他線程只能等待,IIS被死鎖了,全部的CPU時間都消耗在DLLHOST中。
解決辦法:
最簡單的辦法是使用文件醫生,自動查找并修復所有有問題的文件,請參考:
http://7i24.com/serverdoctor/filedoctor.htm
另一個辦法是:
安裝“一流信息監控攔截系統”,使用其中的“首席文件檢查官IIS健康檢查官”軟件,
啟用”查找死鎖模塊”,設置:
;--wblock=yes
;監控的目錄,請指定您的主機的文件所在目錄:
;--wblockdir=d:/test
監控生成的日志的文件保存位置在安裝目錄的log目錄中,文件名為:logblock.htm
停止IIS,再啟動“首席文件檢查官IIS健康檢查官”,再啟動IIS,“首席文件檢查官IIS健康檢查官”會在logblock.htm中記錄下最后寫入的ACCESS文件的。
過了一段時間后,當問題出來時,例如CPU會再次一直處100%的水平,可以停止IIS,檢查logblock.htm所記錄的最后的十個文件,注意,最有問題的往往是計數器類的ACCESS文件,例如:”**COUNT.MDB”,”**COUNT.ASP”,可以先把最后十個文件或有所懷疑的文件刪除到回收站中,再啟動IIS,看看問題是否再次出現。我們相信,經過仔細的查找后,您肯定可以找到這個讓您操心了一段時間的文件的。
找到這個文件后,可以刪除它,或下載下來,用ACCESS2000修復它,問題就解決了!!!
新聞熱點
疑難解答