導致服務器CPU使用率高的系統進程因素有:1、Dllhost進程,消耗所有的CPU空閑時間,導致CPU一直處100%的水平,且不會下降;2、Services進程,會導致CPU使用率可能間歇性地達到100%,且計算機可能停止響應。
具體內容如下:
1、Dllhost進程
特征:服務器正常CPU消耗應該在75%以下,而且CPU消耗應該是上下起伏的,出現這種問題的服務器,CPU會突然一直處100%的水平,而且不會下降。查看任務管理器,可以發現是DLLHOST.EXE消耗了所有的CPU空閑時間,管理員在這種情況下,只好重新啟動IIS服務,奇怪的是,重新啟動IIS服務后一切正常,但可能過了一段時間后,問題又再次出現了。
直接原因:有一個或多個ACCESS數據庫在多次讀寫過程中損壞,微軟的MDAC系統在寫入這個損壞的ACCESS文件時,ASP線程處于BLOCK狀態,結果其它線程只能等待,IIS被死鎖了,全部的CPU時間都消耗在DLLHOST中。
解決辦法:安裝“一流信息監控攔截系統”,使用其中的“首席文件檢查官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修復它,問題就解決了。
2、Services進程
癥狀:在基于 Windows 2000 的計算機上,Services.exe 中的 CPU 使用率可能間歇性地達到100 %,并且計算機可能停止響應(掛起)。出現此問題時,連接到該計算機(如果它是文件服務器或域控制器)的用戶會被斷開連接。您可能還需要重新啟動計算機。如果 Esent.dll 錯誤地處理將文件刷新到磁盤的方式,則會出現此癥狀。
修復程序信息:Microsoft 提供了受支持的修補程序,但該程序只是為了解決本文所介紹的問題。只有計算機遇到本文提到的特定問題時才可應用此修補程序。此修補程序可能還會接受其它一些測試。因此,如果這個問題沒有對您造成嚴重的影響,Microsoft 建議您等待包含此修補程序的下一個 Windows 2000 Service Pack。
注意 :特殊情況下,如果 Microsoft 支持專業人員確定某個特定的更新程序能夠解決您的問題,可免收通常情況下收取的電話支持服務費用。對于特定更新程序無法解決的其它支持問題和事項,將正常收取支持費用。