IIS 性能監測

隨 Internet 信息服務器安裝的 Web Service 和 FTP Service 對象計數器監視文件傳輸速率、帶寬使用情況、連接速率、錯誤以及用戶數和用戶類型。可以查看此對象所有實例的性能數據(使用_Total 實例),或查看特定實例(如“默認網站”、“默認 FTP 站點”或“管理網站”實例)的性能數據。IIS Global 對象計數器報告所有 IIS 服務的性能數據。Active Server Pages 對象計數器監視腳本的連接活動,包括運行時錯誤、請求、會話、模板和事務

 

與帶寬使用情況有關的計數器
對象 計數器
IIS Global、Web Current Blocked Async I/O Requests
IIS Global、Web Measured Async I/O Bandwidth usage
IIS Global、Web Total Allowed Async I/O Requests
IIS Global、Web Total Blocked Async I/O Requests
IIS Global、Web Total Rejected Async I/O Requests


與吞吐量有關的計數器
對象 計數器
Web、FTP Bytes Received/sec
Web、FTP Bytes Sent/sec
Web、FTP Bytes Total/sec
Web Files/sec
Web Files Received/sec
Web Files Sent/sec
Web、FTP Total Files Received
Web、FTP Total Files Sent
Web、FTP Total Files Transferred


與特定請求和錯誤有關的計數器
對象 計數器
Web CGI Requests/sec
Web Copy Requests/sec
Web Current CGI Requests
Web Current ISAPI Extension Requests
ASP Debugging Requests
Web Delete Requests/sec
ASP Errors During Script Runtime
ASP Errors From ASP Preprocessor
ASP Errors From Script Compiler
ASP Errors/sec
Web Get Requests/sec
Web Head Requests/sec
Web ISAPI Extension Requests/sec
Web Lock Requests/sec
Web Locked Errors/sec
Web Maximum CGI Requests
Web Maximum ISAPI Extension Requests
Web Mkcol Requests/sec
Web Move Requests/sec
Web Not Found Errors/sec
Web Options Requests/sec
Web Other Request Methods/sec
Web Post Requests/sec
Web Propfind Requests/sec
Web Proppatch Requests/sec
Web Put Requests/sec
ASP Request Bytes In Total
ASP Request Bytes Out Total
ASP Request Execution Time
ASP Request Wait Time
ASP Requests Disconnected
ASP Requests Executing
ASP Requests Failed Total
ASP Requests Not Authorized
ASP Requests Not Found
ASP Requests Queued
ASP Requests Rejected
ASP Requests Succeeded
ASP Requests Timed Out
ASP Requests Total
ASP Requests/sec
Web Search Requests/sec
Web Total CGI Requests
Web Total Copy Requests
Web Total Delete Requests
Web Total Get Requests
Web Total Head Requests
Web Total ISAPI Extension Requests
Web Total Lock Requests
Web Total Locked Errors
Web Total Method Requests
Web Total Method Requests/sec
Web Total Mkcol Requests
Web Total Move Requests
Web Total Not Found Errors
Web Total Options Requests
Web Total Other Request Methods
Web Total Post Requests
Web Total Propfind Requests
Web Total Proppatch Requests
Web Total Put Requests
Web Total Search Requests
Web Total Trace Requests
Web Total Unlock Requests
Web Trace Requests/sec
Web Unlock Requests/sec


與連接和用戶有關的計數器
對象 計數器
Web Anonymous Users/sec
Web Connection Attempts/sec
Web、FTP Current Anonymous Users
Web、FTP Current CAL Count for Authenticated Users
Web、FTP Current CAL Count for SSL connections
Web、FTP Current Connections
Web、FTP Current NonAnonymous Users
Web、FTP Logon Attempts/sec
Web、FTP Maximum Anonymous Users
Web、FTP Maximum CAL Count for Authenticated Users
Web、 FTP Maximum CAL Count for SSL connections
Web、FTP Maximum Connections
Web、FTP Maximum NonAnonymous Users
Web、FTP Nonanonymous Users/sec
Web、FTP Total Anonymous Users
Web、FTP Total Connection Attempts
Web、FTP Total Count of failed CAL Requests for Authenticated Users
Web、FTP Total Count of failed CAL Requests for SSL connections
Web、FTP Total Logon Attempts
Web、FTP Total NonAnonymous Users


與緩存和內存有關的計數器
對象 計數器
IIS Global Active Flushed Entries
IIS Global BLOB Cache Flushes
IIS Global BLOB Cache Hits
IIS Global BLOB Cache Hits %
IIS Global BLOB Cache Misses
IIS Global Current BLOBs Cached
IIS Global Current File Cache Memory Usage
IIS Global Current Files Cached
IIS Global Current URIs Cached 
IIS Global File Cache Flushes
IIS Global File Cache Hits
IIS Global File Cache Hits %
IIS Global File Cache Misses
ASP In Memory Cache Hit Rate
ASP In Memory Templates Cached
IIS Global Maximum File Cache Memory Usage
ASP Memory Allocated
ASP Script Engines Cached
ASP Templates Cached
ASP Template Cache Hit Rate
ASP Template Notifications
IIS Global Total BLOBs Cached
IIS Global Total Files Cached
IIS Global Total Flushed BLOBs
IIS Global Total Flushed Files
IIS Global Total Flushed URIs
IIS Global Total URIs Cached
IIS Global URI Cache Flushes
IIS Global URI Cache Hits
IIS Global URI Cache Hits %
IIS Global URI Cache Misses


與會話有關的計數器
對象 計數器
ASP Session Duration
ASP Sessions Current
ASP Sessions Timed Out
ASP Sessions Total


與事務有關的計數器
對象 計數器
ASP Transactions Aborted
ASP Transactions Committed
ASP Transactions Pending
ASP Transactions Total
ASP Transactions/sec


與重新啓動有關的計數器
對象 計數器
Web、FTP Service Uptime

 

ASP.NET 應用程序性能計數器
有關 ASP.NET 應用程序性能計數器的大部分信息最近已被合併到一個題爲“改善 .NET 應用程序的性能和伸縮性”的綜合文檔中。下表描述了一些可用於監視和優化 ASP.NET 應用程序(包括 Reporting Services)性能的重要計數器。

性能對象 計數器 實例 描述
Processor(處理器)
 % Processor Time(處理器時間百分比)
 __Total
 “% Processor Time”監視運行 Web 服務器的計算機的 CPU 利用率。低 CPU 利用率或者無法最大化 CPU 利用率(無論客戶端負載爲多少)都表明 Web 應用程序中存在對資源的爭用或鎖定。
 
Process(進程)
 % Processor Time(處理器時間百分比)
 aspnet_wp 或 w3wp(具體情況視 IIS 版本而定)
 由 ASP.NET 工作進程所使用的處理器時間所佔的百分比。在將標準負載情況下的性能與先前捕獲的基準進行對比時,如果此計數器的值出現下降,則說明降低了對處理器的需 求,因此也提高了伸縮性。
 
Process(進程)
 Working Set(工作集)
 aspnet_wp 或 w3wp(具體情況視 IIS 版本而定)
 由 ASP.NET 主動使用的內存數量。雖然應用程序開發人員對應用程序使用的內存數量擁有最大的控制權,但系統管理員也可通過調整會話的超時期限來顯著影響這一點。
 
Process(進 程)
 Private Bytes(專有字節)
 aspnet_wp 或 w3wp(具體情況視 IIS 版本而定)
 Private Bytes 是當前分配給該進程且不能由其他進程共享的內存數量(以字節計)。不時出現的尖峯表明某些地方存在瓶頸,會導致工作進程繼續持有不再需要的內存。如果此計 數器突然下降爲接近 0 的值,則可能表示 ASP.NET 應用程序由於無法預料的問題進行了重啓。爲了驗證這一點,請監視“ASP.NET Application Restarts”計數器。
 
ASP.NET Applications(ASP.NET 應用程序)
 Requests/ Sec(每秒的請求數)
 __Total
 允許您檢驗請求的處理速度是否於發送速度相適應。如果每秒請求數的數值低於每秒產生的請求 數,則會出現排隊現象。這通常意味着已經超過了最大請求速度。
 
ASP.NET Applications(ASP.NET 應用程序)
 Errors Total(總錯誤數)
 __Total
 在執行 HTTP 請求期間發生的錯誤總數。包括任何分析器、編譯或運行時錯誤。此計數器是“Errors During Compilation”(編譯錯誤數)、“Errors During Preprocessing”(預處理錯誤數)和“Errors During Execution”(執行錯誤數)計數器的總和。運轉正常的 Web 服務器不應產生任何錯誤。如果錯誤發生在 ASP.NET Web 應用程序中,它們的存在可能會讓實際的吞吐量結果產生偏差。
 
ASP.NET
 Request Execution Time(請求執行時間)
 
 顯示了呈現所請求頁面並將其傳送給用戶所需的時間(以毫秒計)。跟蹤此計數器通常要比跟蹤頁面呈現時間效 果更好。此計數器可以更全面地衡量從開始到結束的整個請求時間。在與基準進行對比時,如果此計數器的平均值較低,則說明應用程序的伸縮性和性能均得到了改 善。
 
ASP.NET
 Application Restarts(應用程序重新啓動)
 
 應用程序在 Web 服務器生存期間發生重新啓動的次數。每次發生 Application_OnEnd 事件時,應用程序的重新啓動次數都會增加。應用程序進行重新啓動的原因可能是:更改了 Web.config 文件、更改了存儲在應用程序的 /bin 目錄下的程序集、或者 Web Forms 頁面中發生了太多的更改。如果此計數器的值出現意料之外的增加,說明某些不可預知的問題導致 Web 應用程序被關閉。在這種情況下,應該認真調查問題原因。
 
ASP.NET
 Requests Queued(排隊的請求數)
 
 在隊列中等待服務的請求數。如果此數字隨着客戶端負載的增加而呈現線性的增長,則說明 Web 服務器計算機已經達到了它能夠處理的併發請求極限。此計數器的默認最大值爲 5,000。您可以在計算機的 Machine.config 文件中更改此設置。
 
ASP.NET
 Worker Process Restarts(工作進程重新啓動)
 
 工 作進程在服務器計算機上重新啓動的次數。如果出現意料之外的故障或者被有意回收,則工作進程會重新啓動。如果此計數器的值出現意料之外的增加,應認真調查 問題原因。

除了上表中介紹的這些核心監視要素之外,在您試圖診斷 ASP.NET 應用程序具有的特定性能問題時,下表中的性能計數器也可對您有所幫助。

性能對象 計數器 實例 描述
ASP.NET Applications(ASP.NET 應用程序)
 Pipeline Instance Count(管線實例計數)
 __Total
 指定 ASP.NET 應用程序的活動請求管線實例的數量。由於只有一個執行線程可以在管線實例內運行,所以此數值反映了爲特定應用程序處理的併發請求的最大數量。大多數情況 下,在存在負載的情況下此數值較低爲佳,這表明處理器得到了很好的利用。
 
.NET CLR Exceptions(.NET CLR 異常)
 # of Exceps Thrown(引發的異常數)
 
 顯示應用程序中引發的異常數。如果此數值出現意料之外的增 加,說明可能存在性能問題。如果僅僅存在異常,則並不需要擔心,因爲異常對於某些代碼路徑來說是正常工作的一部分。例 如,HttpResponse.Redirect 方法通過引發一個不可捕獲的異常 ThreadAbortException 來完成工作。同樣,對 ASP.NET 應用程序跟蹤此計數器也更加有用。使用“Errors Total”計數器確定該異常是否將導致應用程序出現意料之外的錯誤。
 
System(系 統)
 Context Switches/ sec(每秒的上下文切換次數)
 
 測量 Web 服務器計算機上所有處理器切換線程上下文的速度。如果此計數器的值很高,可能表示對鎖的爭用頻繁發生,或者在線程的用戶模式和內核模式之間切換頻繁。使用 採樣優化程序和其他工具執行進一步調查可證實上述猜測。

Reporting Services 性能計數器
Reporting Services 包括一組它自己的性能計數器,用於收集有關報告處理和資源消耗方面的信息。可通過 Windows 性能監視器工具中出現的兩個對象來監視實例和組件的狀態和活動:MSRS 2005 Web Service 和 MSRS 2005 Windows Service 對象。

MSRS 2005 Web Service 性能對象包括一組用來跟蹤 Report Server 處理過程的計數器,這些處理過程通常通過在線交互式報告瀏覽操作而引發。這些計數器在 ASP.NET 停止該 Web 服務後被重設。下表列出了可用於監視 Report Server 性能的計數器,並描述了它們的目的。

性能對象:RS Web Service

計數器 描述
Active Sessions(活動會話數)
 活動會話的數量。此計數器反映了尚未過期的所有瀏覽器會話總數。這 並不是同時處理的請求數,而是存儲在 ReportServerTempDB 數據庫中的會話數量。
 
Cache Hits/Sec(每秒緩存命中次數)
 每秒從目錄中取得的報告請求的數量。如果此值增加,而“Memory Cache Hits”的值不增加,則說明報告數據沒有被重新處理,但是頁面被重新呈現。將此計數器與 Memory Cache Hits/Sec 計數器一同使用,可以確定用於緩存、磁盤或內存的資源是否充足。
 
Cache Misses/Sec(每秒緩存未命中數)
 每秒 未能從目錄中(與內存中相對)返回報告的請求數量。將此計數器與 Memory Cache Misses/Sec 計數器一同使用,可以確定用於緩存、磁盤或內存的資源是否充足。
 
First Session Requests/Sec(每秒的首次會話請求數)
 每秒中從 Report Server 緩存中啓動的新的用戶會話數量。
 
Memory Cache Hits/Sec(每秒內存緩存命中數)
 每秒中從內存中的緩存裏取得報告的次數。內存中緩存是 Reporting Services 緩存的一部分,用於在內存或臨時文件中保存已呈現過的報告。這樣可以爲請求提供最佳的性能,因爲無需執行任何處理工作。如果使用內存中緩存,報告服務器將 不會通過查詢 SQL Server 來獲得緩存的內容。
 
Memory Cache Misses/Sec(每秒內存緩存未命中數)
 每 秒中未能從內存中的緩存裏取得報告的次數。
 
Next Session Requests/Sec(每秒的下一次會話請求)
 每 秒在現有會話中請求打開報告的次數。
 
Report Requests(報告請求)
 當前處於活動狀態並且將由 Report Server 進行處理的報告數量。
 
Reports Executed/Sec(每秒執行的報告數)
 每秒成功執行的報告的數 量。此計數器提供了有關報告處理量的統計信息。綜合使用此計數器和 Request/Sec,比較可從緩存中返回的報告請求的執行情況。
 
Requests/Sec(每 秒的請求數)
 每秒向 Report Server 發出的請求數。此計數器跟蹤由 Report Server 處理的所有類型的請求。
 
Total Cache Hits(緩存命中總數)
 自服務啓動以來,從緩存中獲得報告的請求總數。此計數器在 ASP.NET 停止該 Web 服務後被重設。
 
Total Cache Misses(總的緩存未命中數)
 自服務啓動以來,不能從緩存中獲得報告的總次數。 此計數器在 ASP.NET 停止該 Web 服務後被重設。可使用此計數器確定磁盤空間和內存是否充足。
 
Total Memory Cache Hits(總的內存緩存命中數)
 自服務啓動以來,從內存中緩存裏返回的已緩存報告的總數。此計數器在 ASP.NET 停止該 Web 服務後被重設。內存中緩存是在 CPU 內存中存儲報告的那部分緩存。如果使用內存中緩存,報告服務器將不會通過查詢 SQL Server 來獲得緩存的內容。
 
Total Memory Cache Misses(總的緩存未命中數)
 自服務啓動以來,針對內存中緩 存的緩存未命中總數。此計數器在 ASP.NET 停止該 Web 服務後被重設。
 
Total Processing Failures(處理故障總數)
 自服務啓動以來,發生的所有報告處理故障的總數。此計數器在 ASP.NET 停止該 Web 服務後被重設。處理故障可能來自報告處理器,也可能來自任何擴展。
 
Total Reports Executed(執行的報告總數)
 自 服務啓動以來得到成功執行的報告的總數。
 
Total Requests(總請求數)
 自服務啓動以來,向 Report Server 發送的所有請求的總數。

RS Windows Service 性能對象包括一組用於跟蹤報告處理過程的計數器,這些處理過程是通過預定操作而引發的。預定操作可能包括訂閱和交付、報告執行快照以及報告歷史。微軟的工 作負載中並不包含任何預定操作或交付操作,此處列出這些性能計數器僅是便於您進行參考。

可使用此性能對象監視 Report Server Windows 服務。如果您準備在一個橫向伸縮配置中運行 Report Server,那麼這些計數器應用於所選的服務器,而不是應用於橫向伸縮配置整體。這些計數器在應用程序域回收之時將被重設。下表列出了可用於監視預定和 交付操作的計數器,並描述了它們的目的。

性能對象:RS Windows Service

計數器 描述
Cache Flushes/Sec(每秒緩存刷新次數)
 每秒刷新緩存的次數。
 
Cache Hits/Sec(每秒緩存命中數)
 每秒獲取到緩存報告的請求數量。
 
Cache Misses/Sec(每秒緩存未命中數)
 每 秒未能從緩存中獲得報告的請求的數量。
 
Delivers/Sec(每秒交付數)
 每秒從各種交付擴展交付的報告的數量。
 
Events/Sec(每 秒事件數)
 每秒處理的事件數量。被監視的事件,包括 SnapshotUpdated 和 TimedSubscription。
 
Memory Cache Hits/Sec(每秒內存緩存命中數)
 每秒中從內存中的緩存裏取得報告的次數。
 
Memory Cache Misses/Sec(每秒內存緩存未命中數)
 每秒中未能從內存中的緩存裏取得報告的次數。
 
Report Requests(報告請求數)
 當前處於活動狀態並且將由 Report Server 進行處理的報告數量。可使用此計數器評估緩存策略。向特定呈現擴展提交的請求數。請求的數量可能比執行的報告數量多許多。
 
Reports Executed/Sec(每秒執行的報告數)
 每秒成功執行的報告的數量。
 
Snapshot Updates/Sec(每秒快照更新數)
 每秒報告執行快照的預定更新數量。
 
Total App Domain Recycles(應用程序域回收總數)
 自服務啓動以來回收的應用程序域總數。
 
Total Cache Flushes(緩存刷新總數)
 自服務啓動以來,Report Server 的緩存更新總數。
 
Total Cache Hits(緩存命中總數)
 自服務啓動以來,從緩存中獲得報告的請求總數。
 
Total Cache Misses(總的緩存未命中數)
 自服務啓動以來,不能從緩存中獲得報告的總次數。

可使用此計數器確定是否需要更多磁盤空間或內存。
 
Total Deliveries(總交付數)
 由 Scheduling and Delivery Processor 交付的報告總數(對於所有交付擴展)。
 
Total Events(總事件數)
 自服務啓動以來發生的事件的總數。
 
Total Memory Cache Hits(總的內存緩存命中數)
 自服務啓動以來,從內存中緩存裏返回的已緩存報告的總數。
 
Total Memory Cache Misses(總的緩存未命中數)
 自服務啓動以來,針對內存中緩存的緩存未命中總數。
 
Total Processing Failures(處理故障總數)
 自服務啓動以來,發生的所有報告處理故障的總數。處理故障可能來自報告處理器,也可能 來自任何擴展。
 
Total Rejected Threads(被拒絕的線程總數)
 拒絕執行異步處理後在同一線程中作爲同步 過程在以後進行處理的數據處理線程總數。
 
Total Report Executions(報告執行總數)
 已執行報告的總 數。
 
Total Requests(請求總數)
 自服務啓動以來得到成功執行的報告的總數。
 
Total Snapshot Updates(快照更新總數)
 自服務啓動以來,報告執行快照進行更新的總數。

如果您打算排除 Reporting Services 存在的性能問題,記錄以下性能計數器通常很有幫助:ASP.NET、ASP.NET Applications、Process、System、Memory、Physical Disks、.NET Exceptions、.NET Memory、.NET Loading、.NET CLR Locks and Threads 以及 .NET CLR Data。

可選的 Reporting Services 性能計數器 
以下列出了一些適用於 RS Web Service 但在默認情況下並未安裝的性能計數器。但是,在執行性能優化工作時,可以通過這些計數器來改善您洞察性能的能力。爲實現這個目的,請在命令提示符中執行以 下語句:

installutil.exe /u ReportingServicesLibrary.dll然後再執行:

installutil.exe ReportingServicesLibrary.dll爲了成功執行該語句,您可能首先需要修改您的路徑,在路徑中包含 Microsoft .NET Framework 的安裝目錄。在路徑修改完畢後,請從包含 ReportingServicesLibrary.dll 文件的目錄下執行先前語句。默認情況下,該文件安裝在 C:/Program Files/Microsoft SQL Server/MSSQL/MSSQL.instance/Reporting Services/ReportServer/bin 目錄下。這些計數器沒有進行徹底的本地化。

Active Database Connections(活動數據庫連接)
 某個時間處於活動狀態的數據庫連接的數量。只統計指向 Report Server 目錄的連接。
 
Active Datasource Connections(活動數據源連接)
 某 個時間處於活動狀態的數據庫連接的數量。只統計由當前運行的報告打開的數據源連接。
 
Active Threads(活動線程)
 當 前處於活動狀態的線程數量。在 Web 服務中,它包含一些爲請求提供服務的線程。在交付服務中,它包含工作線程以及維護和輪詢線程。
 
Byte count(字節計數)
 對於上一次請求,在呈現當前報告時向客戶端返回的字節數量。這與對應的執行日誌條目相類似。
 
Row Count(行計數)
 對於上一次請求,由當前報告返回的行的數量。這與對應的執行日誌條目相類似。
 
Time in Compression(壓縮時間)
 對於上一次請求,在快照和 PDF 報告壓縮上花費的時間(以毫秒計)。
 
Time in da

ta source access(數據源訪問時間)
 對於上一次請求,在獲取報告的數據源信息上花費的時間(以毫秒計)。其中 包括執行查詢和取回結果所需的時間。這與對應的執行日誌條目相類似。
 
Time in database(數據庫時間)
 對於上 一次請求,在獲取 Report Server 目錄信息上花費的時間(以毫秒計)。
 
Time in processing(處理時間)
 對於上一次請求,在報告處理上花費的時間(以毫秒計)。這與對應的執行日誌條目相類似。
 
Time in rendering(呈現時間)
 對於上一次請求,在呈現報告上花費的時間(以毫秒計)。這與對應的執行日誌條目相類似。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章