ASP.NET 的效能計數器

來源:互聯網
上載者:User
更詳細的請參考 IIS 協助文檔

     

ASP.NET 的效能計數器

ASP.NET 支援兩組效能計數器:系統和應用程式。前者在 ASP.NET 效能計數器對象中的 PerfMon 中公開;後者在 ASP.NET Applications 效能物件中公開。ASP.NET 效能物件中的 State Server Sessions 計數器(僅適用於在其中運行狀態伺服器的伺服器電腦)和 ASP.NET Applications 效能物件中的 Sessions 計數器(僅適用於進程中發生的使用者會話)之間存在很大的差異。

 注意 每 400 毫秒更新一次與每個效能計數器關聯的值。

在監視 ASP.NET Web 應用程式的效能時,應該始終跟蹤下表中列出的效能計數器。

效能物件 效能計數器
ASP.NET Application Restarts
ASP.NET Requests Queued
ASP.NET Worker Process Restarts
ASP.NET Applications Errors Total
ASP.NET Applications Requests/Sec
Processor % CPU Utilization

% CPU Utilization 計數器監視 Web 服務器電腦上的 CPU 使用方式。無論用戶端負載如何,CPU 使用率很低或者無法達到 CPU 最大使用率就意味著 Web 應用程式中存在資源或鎖定競爭。

此外,在確定 Web 應用程式效能問題時,下表中列出的效能計數器是非常有用的。

效能物件 效能計數器
ASP.NET Applications Pipeline Instance Count
.NET CLR Exceptions # of Exceps Thrown
System Context Switches/sec

# of Exceps Thrown 計數器顯示應用程式中引發的異常數量,因為它們可能會對效能造成不利影響。但是,某些代碼路徑必須依賴異常才能正常工作。例如,HttpResponse.Redirect 方法始終引發一個無法捕獲的異常 ThreadAbortException。因此,使用 Errors Total 計數器跟蹤引發的異常數量以查看異常是否在應用程式上建置錯誤更有用處。

Context Switches/sec 計數器測量 Web 服務器電腦中所有 CPU 切換線程內容相關的速率。如果此計數器的數值較大,則表明鎖定競爭很激烈,或者線程在使用者和核心模式之間頻繁切換。可能還需要使用採樣分析器和其他工具進行進一步的分析。

以下列表詳細介紹了 ASP.NETASP.NET Applications 效能物件中的計數器。

ASP.NET 系統效能計數器

ASP.NET 支援以下 ASP.NET 系統效能計數器。它們彙集 Web 服務器電腦上所有 ASP.NET 應用程式的資訊,或者它們通常應用於運行相同應用程式的 ASP.NET 伺服器的系統。它們可能包含 Web 場和 Web 園。

Application Restarts
在 Web 服務器的生存期內應用程式已重新啟動的次數。每發生一次 Application_OnEnd 事件,應用程式重新啟動次數就會增加一次。可能由於以下原因而出現應用程式重新啟動:更改 Web.config 檔案,更改應用程式 \Bin 目錄中儲存的程式集,或者對 Web 表單頁更改過多。此計數器意外增加可能意味著,未知問題將導致 Web 應用程式關閉。在此類情況下,應該儘早調查原因。

注意 每次重新啟動 Internet 資訊服務 (IIS) 主機時,就會重設該值。

Application Running
伺服器電腦上啟動並執行應用程式的數量。
Requests Disconnected
由於通訊故障而斷開的請求數量。
Requests Queued
在隊列中等待服務的請求數。當此數值隨用戶端負載線性增加時,則 Web 服務器電腦已達到它所能處理的並發請求的上限。此計數器的預設最大值為 5,000。可以在電腦的 Machine.config 檔案中更改此設定。
Requests Rejected
由於處理請求的伺服器資源不足而未執行的請求總數。此計數器表示返回 503 HTTP 狀態碼(表示伺服器太忙)的請求數量。
Request Wait Time
隊列中的最近請求等待處理的亳秒數。
Session State Server Connections Total
儲存進程外工作階段狀態資料的電腦的工作階段狀態串連總數。
Session SQL Server Connections Total
儲存工作階段狀態資料的 Microsoft SQL Server 資料庫的工作階段狀態串連總數。
State Server Sessions Abandoned
已明確放棄的使用者會話數。它們是由特定使用者操作結束的會話,如關閉瀏覽器或瀏覽到另一個網站。該計數器只用於運行狀態伺服器服務 ( aspnet_state) 的電腦上。
State Server Sessions Active
當前活動使用者會話的數量。該計數器只用於運行狀態伺服器服務 ( aspnet_state) 的電腦上。
State Server Sessions Timed Out
由於使用者非活動而處於非活躍狀態的使用者會話數。該計數器只用於運行狀態伺服器服務 ( aspnet_state) 的電腦上。
State Server Sessions Total
在進程生存期內建立的會話數。此計數器是 State Server Sessions ActiveState Server Sessions AbandonedState Server Sessions Timed Out 的累積值。該計數器只用於運行狀態伺服器服務 ( aspnet_state) 的電腦上。
Worker Process Restarts
在伺服器電腦上已重新啟動背景工作處理序的次數。如果背景工作處理序意外失敗或者有意回收,則可以重新啟動該背景工作處理序。當此計數器出現意外增加時,應該儘早調查原因。
Worker Process Running
伺服器電腦上啟動並執行背景工作處理序的數量。
ASP.NET Application 效能計數器

ASP.NET 支援以下應用程式效能計數器,可以使用這些計數器來監視單個 ASP.NET 應用程式執行個體的效能。這些計數器均有一個唯一執行個體 __Total__,該執行個體合計 Web 服務器上所有應用程式的計數器(與本主題第一節中描述的全域計數器類似)。__Total__ 執行個體始終可用。當伺服器上沒有應用程式時,這些計數器將顯示零。

Anonymous Requests
使用匿名驗證的請求數。
Anonymous Requests/Sec
每秒使用匿名驗證的請求數。
Cache Total Entries
緩衝中的總項數。該計數器既包括由 ASP.NET 頁架構在內部使用的緩衝,又包括通過公開的 API 在外部使用的緩衝。
Cache Total Hits
緩衝的命中總數。該計數器既包括由 ASP.NET 頁架構在內部使用的緩衝,又包括通過公開的 API 在外部使用的緩衝。
Cache Total Misses
每個應用程式失敗的緩衝請求數。該計數器既包括由 ASP.NET 在內部使用的緩衝,又包括通過公開的 API 在外部使用的緩衝。
Cache Total Hit Ratio
緩衝的命中與未命中的比率。該計數器既包括由 ASP.NET 在內部使用的緩衝,又包括通過公開的 API 在外部使用的緩衝。
Cache Total Turnover Rate
每秒對總緩衝的添加數和移除數。這對確定緩衝的使用效率很有協助。如果反覆很大,則無法有效地使用緩衝。
Cache API Entries
應用程式緩衝中的總項數。
Cache API Hits
當只通過外部緩衝 API 訪問緩衝時,緩衝中的命中總數。該計數器不跟蹤由 ASP.NET 在內部使用的緩衝。
Cache API Misses
在通過外部緩衝 API 訪問時,失敗的緩衝請求的總數。該計數器不跟蹤由 ASP.NET 在內部使用的緩衝。
Cache API Hit Ratio
在通過外部緩衝 API 訪問時,快取命中與未命中的比率。該計數器不跟蹤由 ASP.NET 在內部使用的緩衝。
Cache API Turnover Rate
在通過外部 API 使用(不包括 ASP.NET 頁架構在內部使用的緩衝)時,緩衝每秒增加或減少的數量。這對確定緩衝的使用效率很有協助。如果反覆很大,則無法有效地使用緩衝。
Compilations Total
在當前 Web 服務器進程的生存期內發生的編譯總數。當在伺服器上動態編譯副檔名為 .aspx、.asmx、.ascx 或 .ashx 的檔案或程式碼後置源檔案時,就會發生這種情況。

注意 在對應用程式的所有部分提出請求時,此數值開始逐步達到峰值。但是,在進行編譯時間,將產生的位元據儲存到磁碟(在其中重新使用該資料,直到其源檔案發生變化時為止)中。這意味著,即使進程重新啟動,計數器仍可保持為零(非活躍),直到修改或重新部署應用程式時為止。

Debugging Requests
在啟用調試時發生的請求數。
Errors During Preprocessing
在分析期間發生的錯誤數。不包括編譯和執行階段錯誤。
Errors During Compilation
在動態編譯期間發生的錯誤數。不包括剖析器和執行階段錯誤。
Errors During Execution
在執行 HTTP 要求期間發生的錯誤總數。不包括剖析器和編譯錯誤。
Errors Unhandled During Execution
在執行 HTTP 要求期間發生的未處理錯誤的總數。

注意 未處理的錯誤是指任何未捕獲的運行時異常,它轉換頁面上的使用者代碼並輸入 ASP.NET 內部錯誤處理邏輯。在以下情況下,此規則出現例外情況:

  • 啟用了自訂錯誤和/或定義了錯誤頁面。
  • 在使用者代碼中定義了 Page_Error 事件並且清除了該錯誤(使用 HttpServerUtility.ClearError 方法)或執行重新導向。
Errors Unhandled During Execution/Sec
在執行 HTTP 要求期間每秒發生的未處理異常的數量。
Errors Total
在執行 HTTP 要求期間發生的錯誤的總數。包括任何剖析器、編譯或執行階段錯誤。此計數器是 Errors During CompilationErrors During PreprocessingErrors During Execution 計數器的總和。正常工作的 Web 服務器不應建置錯誤。如果在 ASP.NET Web 應用程式中發生錯誤,則它們可能會由於錯誤恢複的代碼路徑不同而歪曲輸送量結果。在執行調試之前,調查並修複應用程式中的任何錯誤。
Errors Total/Sec
在執行 HTTP 要求期間每秒發生的錯誤數。包括任何剖析器、編譯或執行階段錯誤。
Output Cache Entries
輸出緩衝中的總項數。
Output Cache Hits
從輸出緩衝中處理的請求總數。
Output Cache Misses
每個應用程式失敗的輸出緩衝請求數。
Output Cache Hit Ratio
從輸出緩衝中處理的全部請求所佔的百分比。
Output Cache Turnover Rate
輸出緩衝每秒增加或減少的數量。如果反覆很大,則無法有效地使用緩衝。
Pipeline Instance Count
指定 ASP.NET 應用程式的活動請求管道執行個體的數量。因為在管道執行個體內只能運行一個執行線程,所以此數值給出了為某個應用程式處理的並發請求的最大數量。在大多數情況下,在具有負載時最好將此數值控制很低,這表明 CPU 的使用率很高。
Request Bytes In Total
所有請求的總大小(以位元組為單位)。
Request Bytes Out Total
發送到用戶端的響應的總大小(以位元組為單位)。這不包括標準的 HTTP 回應標頭。
Requests Executing
當前執行的請求數。
Requests Failed
失敗請求的總數。如果任何和全部狀態碼大於或等於 400,就會增加此計數器。

注意 導致 401 狀態碼的請求將增加此計數器和 Requests Not Authorized 計數器。導致 404 或 414 狀態碼的請求將增加此計數器和 Requests Not Found 計數器。導致 500 狀態碼的請求將增加此計數器和 Requests Timed Out 計數器。

注意 在拒絕請求(無法完成,因為拒絕是由 IIS 而不是由進程模型完成的)時,等價的 ASP 計數器也將增加。

Requests Not Found
由於未找到資源而失敗的請求數(狀態碼 404、414)。
Requests Not Authorized
由於無授權而失敗的請求數(狀態碼 401)。
Requests Succeeded
已成功執行的請求數(狀態碼 200)。
Requests Timed Out
已逾時的請求數(狀態碼 500)。
Requests Total
服務啟動後的請求總數。
Requests/Sec
每秒執行的請求數。它表示應用程式的當前輸送量。在恒定負載下,此數值應處於特定的範圍內(不包含其他的伺服器工作,如記憶體回收、緩衝清理線程和外部伺服器工具等)。
Sessions Active
當前活動會話的數量。該計數器只受記憶體中工作階段狀態的支援。
Sessions Abandoned
已明確放棄的會話數。該計數器只受記憶體中工作階段狀態的支援。
Sessions Timed Out
逾時的會話數量。該計數器只受記憶體中工作階段狀態的支援。
Sessions Total
逾時的會話數量。該計數器只受記憶體中工作階段狀態的支援。
Transactions Aborted
中止的事務數。
Transactions Committed
提交的事務數。
Transactions Pending
進行中的事務數。
Transactions Total
服務啟動後的事務總數。
Transactions/Sec
每秒啟動的事務數。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.