網路效能計數器
效能主控台 .NET CLR Networking 分類包含了提供應用程式在網路上傳送和接收之資料的相關資訊的計數器。 下表描述的是這些效能計數器。
效能計數器 |
描述 |
---|---|
Bytes Received |
處理程序啟動後,AppDomain 內所有 Socket 物件所接收的位元組總和數目。 這個數目包含資料和未由 TCP/IP 定義的任何通訊協定資訊。 |
Bytes Sent |
處理程序啟動後,AppDomain 內所有 Socket 物件所傳送的位元組累積數目。 這個數目包含資料和未由 TCP/IP 定義的任何通訊協定資訊。 |
Connection Established |
|
Datagrams Received |
|
Datagrams Sent |
|
HttpWebRequest Average Lifetime |
處理序啟動後,在 AppDomain 內最後一個間隔內結束的所有 HttpWebRequest 物件其平均完成時間。 |
HttpWebRequest Average Queue Time |
處理序啟動後,在 AppDomain 內最後一個間隔內留在佇列中的所有 HttpWebRequest 物件其平均佇列時間。 |
HttpWebRequests Created/sec |
AppDomain 內每秒建立的 HttpWebRequest 物件數目。 |
HttpWebRequests Queued/sec |
AppDomain 內每秒加入至佇列中的 HttpWebRequest 物件數目。 |
HttpWebRequests Aborted/sec |
AppDomain 內每秒其中的應用程式會呼叫 Abort 方法的 HttpWebRequest 物件數目。 |
HttpWebRequests Failed/sec |
AppDomain 內每秒從伺服器擷取失敗狀態程式碼的 HttpWebRequest 物件數目。 |
備註
支援數種類別的網路效能計數器:
事件計數器會測量某些事件發生的次數。
資料計數器,可測量傳送或接收的資料量。
期間計數器,會測量不同的處理序會花費多久的時間。 在物件離開不同的狀態後,會在每個間隔 (通常以秒為單位) 在物件上測量時間。
每個間隔計數器,可測量在每個間隔 (通常是每秒) 會進行特定轉換的物件數目。
事件的網路效能計數器包括下列各項:
Connection Established
Datagrams Received
Datagrams Sent
處理程序啟動後,這些效能計數器會提供計數。 所建立 Socket 連線的計數包含已建立資料流通訊端其應用程式明確的 Socket 方法呼叫,以及其他類別 (例如 HttpWebRequest、FtpWebRequest、 WebClient 和 TcpClient) 對 Socket 類別的內部呼叫。
[Datagrams Received] 與 [Datagrams Sent] 的計數包含應用程式使用明確的 Socket 方法呼叫,以及其他類別 (例如 UdpClient) 對 Socket 產生的內部呼叫,所傳送或接收的資料包封包。 新執行個體。 [Datagrams Received] 和 [Datagrams Sent] 計數器也經由假設資料包的平均大小,來提供已使用資料包傳送或接收多少位元組的非常粗略量值。
資料的網路效能計數器包括下列各項:
Bytes Received
Bytes Sent
處理程序啟動後,上述計數器會提供位元組的計數。
有兩個期間計數器會測量 HttpWebRequest 物件通過整個生命週期,或只通過一部分,會花多久時間:
HttpWebRequest Average Lifetime
HttpWebRequest Average Queue Time
對於 [HttpWebRequest Average Lifetime] 計數器,大部分 HttpWebRequest 物件的存留期一律從建立物件的時間開始,一直到應用程式關閉回應資料流的時間為止。 有兩種不常見情況:
如果應用程式永遠不會呼叫 GetResponse 或 BeginGetResponse 方法,則 HttpWebRequest 物件的存留期會被忽略。
如果在呼叫 GetResponse 或 EndGetResponse 方法時,HttpWebRequest 物件擲回 WebException,則存留期會在擲回例外狀況時結束。 技術上,基礎回應資料流也會在該點關閉 (傳回給使用者的回應資料流確實是包含一份回應資料流的記憶體資料流)。
有四個計數器會在每個間隔追蹤某些 HttpWebRequest 物件問題。 這些效能計數器可協助應用程式開發人員、系統管理員和技術支援人員更了解 HttpWebRequest 物件正在進行的作業。 計數器包括下列各項:
HttpWebRequests Created/sec
HttpWebRequests Queued/sec
HttpWebRequests Aborted/sec
HttpWebRequests Failed/sec
對於 [HttpWebRequests Aborted/sec] 計數器,也會計算對 Abort 的內部呼叫。 這些內部呼叫通常是由應用程式想要測量的逾時所造成的。
[HttpWebRequests Failed/sec] 計數器包含 HttpWebRequest 物件的數目,該物件每秒會從伺服器收到一個失敗狀態碼。 這表示接收在要求結尾處從 HTTP 伺服器接收的狀態碼不在 200 至 299 的範圍內。 被處理且導致新要求的狀態碼 (例如許多 401 未經授權狀態碼) 會根據重試的結果而失敗或不失敗。 如果應用程式會根據重試看到錯誤,這個計數器會遞增。
可以使用 PerformanceCounter 與 System.Diagnostics 命名空間中相關的類別來存取與管理網路效能計數器。 網路效能計數器也可以使用 Windows 效能監視器主控台檢視。
在要使用的組態檔中必須啟用網路效能計數器。 所有的網路效能計數器都是使用組態檔中的單一設定來啟用或停用。 無法啟用或停用個別的網路效能計數器。 如需詳細資訊,請參閱<performanceCounter> 項目 (網路設定)。
如果已啟用網路計數器,這將會建立並更新每個應用程式網域和全域效能計數器。 如果停用,應用程式將不提供任何網路效能計數器資料。
效能計數器會群組至 [分類]。 應用程式可以使用下列範例程式碼列出所有分類:
PerformanceCounterCategory[] Array = PerformanceCounterCategory.GetCategories();
for (int i = 0; i < Array.Length; i++)
{
Console.Out.WriteLine("{0}. Name={1} Help={2}", i, Array[i].CategoryName, Array[i].CategoryHelp);
}
網路效能計數器列於兩種分類中:
「.NET CLR 網路」- .NET Framework 第 2 版及更新版本上支援 .NET Framework 版本 2 引入的原始效能計數器。
「.NET CLR 網路 4.0.0.0」- .NET Framework 第 4 版及更新版本上支援所有上述的通訊端計數器再加上新的效能計數器。 這些新的計數器會提供 HttpWebRequest 物件的效能資訊。
如需存取和管理應用程式中效能計數器的詳細資訊,請參閱.NET Framework 中的效能計數器。
請參閱
參考
<performanceCounter> 項目 (網路設定)