文章編號: 919791 - 上次校閱: 2007年3月19日 - 版次: 1.1

如何使用 Debug Diagnostics Tool,在 IIS 中為 CPU 使用率過高的處理序進行疑難排解

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

結論

本文將說明如何使用 Debug Diagnostics Tool,在 Microsoft Internet Information Services (IIS) 中為 CPU 使用率過高的處理序進行疑難排解。

簡介

在 IIS 中,當某 IIS 處理序的 CPU 使用率持續達到可用 CPU 循環的 80% 或以上時,即代表使用率過高。IIS 處理序的範例包括 Inetinfo.exe、Dllhost.exe 及 W3wp.exe。發生 IIS 處理序的 CPU 使用率過高的情況時,您可能會遇到下列一或多種徵狀:
  • 網頁無法正確載入。例如,網頁為空白或無回應。
  • 執行 IIS 的伺服器有效能降低的情形。例如,當您嘗試檢視網頁時,進度指示器的移動十分緩慢。
本文將告訴您如何安裝並設定 Debug Diagnostics Tool,在 IIS 中為 CPU 使用率過高的處理序進行疑難排解。

其他相關資訊

如果 IIS 程序的 CPU 使用率達到可用 CPU 循環的高百分比,我們建議您在 IIS 處理用戶端要求時,建立 IIS 處理序的完整記憶體傾印檔案。您可以使用 Debug Diagnostics Tool,於 IIS 處理用戶端要求時擷取並分析記憶體傾印檔案。

注意 Debug Diagnostics Tool 1.0 隨附在 IIS Diagnostics Toolkit 中。

步驟 1:下載並安裝 Debug Diagnostics Tool

如果要下載並安裝 Debug Diagnostics Tool,請造訪下列 Microsoft 網站:
http://www.iis.net/handlers/895/ItemPermaLink.ashx (http://www.iis.net/handlers/895/ItemPermaLink.ashx)

步驟 2:設定效能監視器記錄

如果要設定效能監視器記錄,請依照下列步驟執行:
  1. 按一下 [開始],再按一下 [執行],輸入 Debug Diagnostics Tool 的路徑,然後按一下 [確定]

    注意 根據預設,Debug Diagnostics Tool 位於下列資料夾中:
    C:\Program Files\IIS Resources\DebugDiag
  2. [工具 (Tools)] 功能表上,按一下 [選項及設定 (Options and Settings)]
  3. [效能記錄 (Performance Logging)] 索引標籤上,按一下 [啟用效能計數器資料記錄 (Enable Performance Counter Data Logging)],然後按一下 [確定 (OK)]

    注意[資料抽樣間隔 (Data Sampling Interval)] 方塊中的值,必須根據 CPU 使用率過高的事件發生時間而定。記錄檔的大小會隨著資料的收集而增長。請連絡 Microsoft 技術支援工程師,以取得如何設定 [資料抽樣間隔 (Data Sampling Interval)] 方塊中的值的相關資訊。

步驟 3:停用偵錯例外捕捉方式

注意 如果您設定 Debug Diagnostics Tool 的目的,是要在 IIS 6.0 中使用該工具,請前往<步驟 4:建立傾印檔案>。

如果您設定 Debug Diagnostics Tool 的目的,是要在 IIS 5.1 或 IIS 5.0 中使用該工具,請停用 [偵錯例外捕捉方式 (Debug Exception Catching)]。如果要執行這項操作,請依照下列步驟執行:
  1. 按一下 [開始],再按一下 [執行],輸入 Inetmgr.exe,然後按一下 [確定]
  2. 用滑鼠右鍵按一下您要設定的電腦,然後按一下 [內容]
  3. [主要內容] 清單中,按一下 [WWW 服務],然後按一下 [編輯]
  4. [主目錄] 索引標籤上,按一下 [設定]
  5. [處理序選項] 索引標籤中,按一下以取消選取 [啟用偵錯例外捕捉方式] 核取方塊,然後按一下 [確定]

步驟 4:建立傾印檔案

如果要建立傾印檔案,請使用下列其中一個方法。

方法 1:建立懸置規則

如果要建立懸置規則,請依照下列步驟執行:
  1. 按一下 [開始],再按一下 [執行],輸入 Debug Diagnostics Tool 的路徑,然後按一下 [確定]

    注意 根據預設,Debug Diagnostics Tool 位於下列資料夾中:
    C:\Program Files\IIS Resources\DebugDiag
  2. [規則 (Rules)] 索引標籤上,按一下 [新增規則 (Add Rule)]
  3. 按一下 [IIS 懸置 (IIS Hang)],然後按一下 [下一步 (Next)]
  4. 按一下 [新增 URL (Add URL)],輸入發生此問題的網站 URL,然後按一下 [確定 (OK)]。接著請按一下 [是 (Yes)] 以測試該 URL。
  5. 按一下 [確定 (OK)],然後按一下 [下一步 (Next)]
  6. 按一下 [新增傾印目標 (Add Dump Target)]
  7. [目標類型 (Target Type)] 清單中,按一下您想要的目標類型,再按一下 [確定 (OK)],然後按一下 [下一步 (Next)]
  8. 輸入規則名稱,再輸入使用者傾印檔案位置的路徑,然後按一下 [下一步 (Next)]
  9. 按一下 [立即啟動規則 (Activate The Rule Now)],然後按一下 [完成 (Finish)]

    [規則 (Rules)] 索引標籤上,確認該規則在 [狀態 (Status)] 欄中是否為 [使用中 (Active)]。

方法 2:手動建立 IIS 懸置傾印檔案

如果要手動建立 IIS 懸置傾印檔案,請依照下列步驟執行:
  1. 按一下 [開始],再按一下 [執行],輸入 Debug Diagnostics Tool 的路徑,然後按一下 [確定]

    注意 根據預設,Debug Diagnostics Tool 位於下列資料夾中:
    C:\Program Files\IIS Resources\DebugDiag
  2. [工具 (Tools)] 功能表上,按一下 [建立 IIS 懸置傾印 (Create IIS Hang Dump)]

方法 3:在 Debug Diagnostics Tool 中為處理序建立使用者傾印檔案

如果要為處理序建立使用者傾印檔案,請依照下列步驟執行:
  1. 按一下 [開始],再按一下 [執行],輸入 Debug Diagnostics Tool 的路徑,然後按一下 [確定]

    注意 根據預設,Debug Diagnostics Tool 位於下列資料夾中:
    C:\Program Files\IIS Resources\DebugDiag
  2. [處理序 (Processes)] 索引標籤上,用滑鼠右鍵按一下您要進行疑難排解的處理序,然後按一下 [建立完整的使用者傾印 (Create Full Userdump)]

步驟 5:停用效能監視器記錄

使用者傾印檔案擷取處理序完成之後的大約兩分鐘後,即可停用效能監視器記錄。如果要執行這項操作,請依照下列步驟執行:
  1. 按一下 [開始],再按一下 [執行],輸入 Debug Diagnostics Tool 的路徑,然後按一下 [確定]

    注意 根據預設,Debug Diagnostics Tool 位於下列資料夾中:
    C:\Program Files\IIS Resources\DebugDiag
  2. [工具 (Tools)] 功能表上,按一下 [選項及設定 (Options and Settings)]
  3. [效能記錄 (Performance Logging)] 索引標籤上,按一下 [停用效能計數器資料記錄 (Disable Performance Counter Data Logging)]

步驟 6:分析傾印檔案

如果要分析傾印檔案,請依照下列步驟執行:
  1. 按一下 [開始],再按一下 [執行],輸入 Debug Diagnostics Tool 的路徑,然後按一下 [確定]

    注意 根據預設,Debug Diagnostics Tool 位於下列資料夾中:
    C:\Program Files\IIS Resources\DebugDiag
  2. [進階分析 (Advanced Analysis)] 索引標籤上,按一下 [新增資料檔案 (Add Data Files)]
  3. 找出並按一下您要分析的傾印檔案。按一下 [開啟 (Open)]
  4. [進階分析 (Advanced Analysis)] 索引標籤上,按一下 [損壞/懸置分析 (Crash/Hang Analysis)],然後按一下 [開始分析 (Start Analysis)]
  5. 檢視於 Microsoft Internet Explorer 中顯示的報告。此報告的複本亦儲存在下列資料夾中:
    C:\Program Files\IIS Resources\DebugDiag\Reports
注意 如果您要針對自訂 .dll 檔案進行疑難排解,請包括自訂 .pdb 檔案。如果要包含自訂 .pdb 檔案,請按一下 [工具 (Tools)],再按一下 [選項及設定 (Options and Settings)],按一下 [資料夾及搜尋路徑 (Folder and Search Paths)],並於 [偵錯的符號搜尋路徑 (Symbol Search Path for Debugging)] 方塊輸入路徑,然後按一下 [確定 (OK)]

?考

如需有關如何使用 IIS 的詳細資訊,請造訪下列 Microsoft 網站:
http://www.iis.net (http://www.iis.net)
如果要檢視 Microsoft Developer Network (MSDN) Webcast,以了解如何處理 IIS 的相關問題,請造訪下列 MSDN 網站:
How to troubleshoot situations where IIS does not respond
http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=zh-TW&EventID=1032268604&CountryCode=TW (http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=zh-TW&EventID=1032268604&CountryCode=TW)
How to diagnose memory leaks in IIS
http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=zh-TW&EventID=1032268608&CountryCode=TW (http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=zh-TW&EventID=1032268608&CountryCode=TW)
How to diagnose situations where IIS closes unexpectedly
http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=zh-TW&EventID=1032268600&CountryCode=TW (http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=zh-TW&EventID=1032268600&CountryCode=TW)
如需如何使用 Debug Diagnostics Tool 為 IIS 處理序進行疑難排解的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
919792? (http://support.microsoft.com/kb/919792/ ) 如何使用 Debug Diagnostics Tool 在 IIS 中為已停止回應的處理序進行疑難排解
919790? (http://support.microsoft.com/kb/919790/ ) How to use the IIS Debug Diagnostics tool to troubleshoot a memory leak in an IIS process
919789? (http://support.microsoft.com/kb/919789/ ) How to use the Debug Diagnostics tool to troubleshoot an IIS process that stops unexpectedly

這篇文章中的資訊適用於:
  • Microsoft Internet Information Services 6.0
  • Microsoft Internet Information Services 5.1
  • Microsoft Internet Information Services 5.0
關鍵字:?
kbhowto KB919791
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。