联网性能计数器
性能控制台 .NET CLR Networking(网络)类别包括一些计数器,这些计数器提供有关应用程序通过网络发送和接收的数据的信息。 下表描述这些性能计数器。
性能计数器 |
说明 |
---|---|
Bytes Received(接收的字节数) |
进程启动后,AppDomain 中所有 Socket 对象接收的字节累积总数。 该数目包括未由 TCP/IP 定义的数据和任何协议信息。 |
Bytes Sent(发送的字节数) |
进程启动后,AppDomain 中所有 Socket 对象发送的字节累积数目。 该数目包括未由 TCP/IP 定义的数据和任何协议信息。 |
Connections Established(建立的连接数) |
|
Datagrams Received(接收的数据报数) |
|
Datagrams Sent(发送的数据报数) |
|
HttpWebRequest 平均生存期 |
进程启动后,完成所有在 AppDomain 中的间隔内结束的 HttpWebRequest 对象的平均时间。 |
HttpWebRequest 平均排队时间 |
进程启动后,所有将队列留在 AppDomain 中的间隔内的 HttpWebRequest 对象列队的平均时间。 |
HttpWebRequests 创建/秒 |
AppDomain 中每秒创建的 HttpWebRequest 对象的数目。 |
HttpWebRequests 排队/秒 |
AppDomain 中每秒添加到队列中的 HttpWebRequest 对象的数目。 |
HttpWebRequests 中止/秒 |
AppDomain 中应用程序每秒调用 Abort 方法处 HttpWebRequest 对象的数目。 |
HttpWebRequests 失败/秒 |
包含 AppDomain 中每秒从服务器接收失败状态代码的 HttpWebRequest 对象的数目。 |
备注
网络性能计数器支持的多个类:
测量某些事件发生次数的事件计数器。
测量发送数据或接收数据数量的数据计数器。
测量不同进程所需时间的持续时间计数器。 在来自不同状态后每个时间间隔(通常以秒为单位)的对象上测量的次数。
测量每个间隔(通常为每秒)正在进行特定转换的对象数的每间隔计数器。
用于事件的网络性能计数器包括:
Connections Established(建立的连接数)
Datagrams Received(接收的数据报数)
Datagrams Sent(发送的数据报数)
这些性能计数器提供进程启动后的计数。 建立的 Socket 连接的计数包括通过建立的流套接字连接的应用程序以及由其他类至 Socket 类进行的内部调用(例如 HttpWebRequest、FtpWebRequest、WebClient 和 TcpClient)进行的显式 Socket 方法调用
接收的数据报数和发送的数据报数的计数包括发送或接收的数据报数据包,方法是使用通过应用程序以及由其他类至 Socket 进行的内部调用(例如 UdpClient)进行显式 Socket 方法调用。 类。 计数接收的数据报数和发送的数据报数可能也用于通过假设数据报数的平均大小提供非常粗糙的使用数据报数发送或接收的字节数量的度量值。
用于数据的网络性能计数器包括:
Bytes Received(接收的字节数)
Bytes Sent(发送的字节数)
进程启动后,上面的计数器将提供的字节计数。
有两种持续时间计数器用来测量 HttpWebRequest 对象通过整个生命周期或仅生命周期的一部分所需的时间:
HttpWebRequest 平均生存期
HttpWebRequest 平均排队时间
对于 HttpWebRequest 平均生存期计数器,大多数 HttpWebRequest 对象的生存期始终以创建对象的时间开始,而以应用程序关闭响应流的时间结束。 有两种不常见的情况:
如果应用程序永远不调用 GetResponse 或 BeginGetResponse 方法,则 HttpWebRequest 对象的生存期将被忽略。
在调用 GetResponse 或 EndGetResponse 方法时,如果 HttpWebRequest 对象引发 WebException,则生存期将在引发该异常时结束。 从技术上讲,基础响应流也将在该点关闭(返回给用户的响应流实际上是一个包含响应流副本的内存流)。
有四个计数器跟踪每个间隔的某些 HttpWebRequest 对象问题。 这些性能计数器可帮助应用程序开发人员、管理员和支持人员更好地了解 HttpWebRequest 对象所进行的操作。 计算器包括以下内容:
HttpWebRequests 创建/秒
HttpWebRequests 排队/秒
HttpWebRequests 中止/秒
HttpWebRequests 失败/秒
对于 HttpWebRequests 中止/秒计数器,将计入对 Abort 的内部调用。 这些内部调用通常由应用程序可能要测量的超时造成。
HttpWebRequests 失败/秒计数器包含每秒从服务器接收一次失败状态代码的 HttpWebRequest 对象数目。 这意味着请求结束时从 Http 服务器接收的状态代码不在 200 至 299 范围内。 根据重试的结果,在新请求中处理以及产生的状态代码(例如,各种 401 未经授权的状态代码)将失败或不失败。 如果应用程序会看到基于重试的错误,则此计数器将递增。
可以使用 System.Diagnostics 命名空间中的 PerformanceCounter 和相关类对这些网络性能计数器进行访问和管理。 网络性能计数器也可通过 Windows 性能监视器控制台进行查看。
需要在要使用的配置文件中启用网络性能计数器。 使用配置文件中的单个设置启用或禁用所有网络性能计数器。 无法启用或禁用单个网络性能计数器。 有关更多信息,请参见 <performanceCounter> 元素(网络设置)。
如果启用网络计数器,则将创建并更新每个 AppDomain 和全局性能计数器。 如果禁用,则应用程序将不提供任何网络性能计数器数据。
将性能计数器编组到类别中。 应用程序可以通过以下代码示例列出所有类别:
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 Networking”- .NET Framework 2 版上引入的原始性能计数器和 .NET Framework 2 及更高版本上支持的原始性能计数器。
“.NET CLR Networking 4.0.0.0”- 上述所有套接字计数器加上 .NET Framework 4 及更高版本上支持的新性能计数器。 这些新计数器提供有关 HttpWebRequest 对象的性能信息。
有关访问和管理应用程序中性能计数器的更多信息,请参见.NET Framework 中的性能计数器。