使用 Windows 性能计数器工具,可以查看 ASP.NET 可用的系统级性能计数器。
查看可用的 ASP.NET 计数器
-
在 Windows 中,单击“开始”,然后单击“运行”。
-
在“运行”对话框中,输入 perfmon,然后单击 OK。
-
在“性能”对话框的相关树中,选择“系统监视器”。
-
在状态窗格的工具栏中,单击“查看报表”按钮。
-
在该工具栏中,单击“添加”按钮。
此时,将会显示“添加计数器”对话框。在“性能对象”中选择“asp.net Application”。
-
在“性能对象”的下方,选择要跟踪的 ASP.NET 对象,再选择“所有计数器”,然后单击“添加”。
有关每种 ASP.NET 性能计数器的信息,请参见 ASP.NET 的性能计数器。
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 内部错误处理逻辑。在以下情况下,此规则出现例外情况:
1:启用了自定义错误和/或定义了错误页面。
2:在用户代码中定义了 Page_Error 事件并且清除了该错误(使用 HttpServerUtility.ClearError 方法)或执行重定向。
Errors Unhandled During Execution/Sec :在执行 HTTP 请求期间每秒发生的未处理异常的数量。
Errors Total :在执行 HTTP 请求期间发生的错误的总数。包括任何分析程序、编译或运行时错误。此计数器是 Errors During Compilation、 Errors During Preprocessing 和 Errors 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 :每秒启动的事务数。