隨 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(呈現時間)
對於上一次請求,在呈現報告上花費的時間(以毫秒計)。這與對應的執行日誌條目相類似。