概述:在性能测试中性能监视器是非常强大的工具,本文主要简述了几个关键的计数器和相关的阈值。

监控性能计数器

很多的性能计数器在性能调优中是非常重要的,由于性能计数器太多,很多人不知道选择那些计数器。

在ASP.NET应用程序中,以下这几个计数器是最基本的:

接下去将会补充说明这些计数器背后代表的意义以及该计数器需要注意的阈值,当然还会补充其他一些相关的性能计数器。

理解性能监视器

以下是对一些比较重要的性能计数器的介绍。

.NET CLR Exceptions Counter

#Exceps thrown / sec:

每秒扔出的托管异常数量。值得注意的是Response.Redirect, Server.Transfer和Response.End将会触发ThreadAbortException, 这个将会严重影响站点的性能。所以用Response.Redirect(url, false)或者用一个静态的HTML来重定向页面。

阈值是5% RPS

.NET CLR Loading Counters

Current AppDomains:

当前加载的 AppDomain数量

Current Assemblies:

当前加载的程序集数量

Bytes in Loader Heap:

所有AppDomains的类型加载器加载的比特数。这个数值必须是稳定的,否者就是AppDomain加载的程序集太多了。

.NET CLR Memory Counters

# Bytes in alll Heaps:

所有托管对象占据的比特数。强烈建议用WINDBG.EXE和SOS.DLL。

# Gen 0 Collections:

0代的对象被回收的数量。仍存活的对象将到达Gen 1.

# Gen 1 Collections:

1代中对象被回收的数量。仍存活的对象将到达Gen 2.

这个阈值是Gen 0 的1/10

# Gen 2 Collections:

2代是最高的,这个阈值是Gen 1 的 1/10

% Time in GC:

最新的一次GC花费的时间百分比。这个平均值低于5%是一个健康的值。

ASP.NET Counters

Application Restarts:

应用程序重启的次数。这个建议值理想状态下应该是0.

Applications Running:

当前运行的应用程序数量。

Requests Current:

当前ASP.NET ISAPI 当前处理的请求数量。当请求数量超过requestQueueLimit, ASP.NET将会拒绝请求。

Request Execution Time:

执行最后一个request花费的毫秒数。

Requests Queued:

当前请求正在排队的数量。

Requests Rejected:

请求被拒绝的数量。

下面几个计数器是发现Request被拒绝原因.

ASP.NET Applications Counters

Cache Total Entries

Cache Total Hit Ratio

Cache API Entries

Compilations Total

Errors During Compilation

Error During Execution

Error Unhandled During Execution

Requests Total/sec:

当前执行的请求数量。当HttpRuntime开始处理请求的时候,该计数器加1,当HttpRuntime结束处理Request时,该计数器减1.

Requests Not Found.

Requests Timed Out.

Request Total:

当应用程序启动以后,总计收到的请求数量。

Requests/Sec

每秒执行的请求数。建议使用 “Web Service\ISAPI Extension Request/Sec”,  因为该计数器不会受应用程序重启的影响。

Process Counters

% Processor Time.

Handle Count.

Thread Count.

Virtual Bytes.

Processor Counter

% Processor Time:

所有线程使用当前处理器的时间百分比

阈值是70%

Memory Counter

Available Mbytes:

可用的物理内存数量。

System Counter

Context Switches/sec:

处理器切换线程上下文的比例。

Web Service Counters

Current Connections.

Total Method Requests/sec:

可以和ASP.NET Applications 和 Web Services中的Request / sec做比较静态页面和aspnet_isapi.dll处理请求数量。

ISAPI Extension Requests/sec.

该计数器包含所有ISAPI extensions, 不仅仅是aspnet_isapi.dll.

结语

在应用程序go live之前,压力测试和相关的计数器将减少你将来的headache.

原文:http://msdn.microsoft.com/en-us/library/ms972959.aspx

[译]ASP.NET 性能监控的更多相关文章

  1. Asp.net 性能监控之压测接口“卡住” 分析

    问题描述:web api项目接口压测.前期并发100,500没出现问题,平均耗时也在几百毫秒.当并发1000时候,停留等待许久,看现象是jemeter卡住,没返回,时间过了许久,才正常. 解决过程: ...

  2. ASP.NET 性能监控和优化入门

    关键要点: 只有与应用指标相关联,基础设施指标才能最大发挥作用. 高效性能优化的关键在于性能数据. 一些APM工具为ASP.NET提供了开箱即用的支持,这样入门使用ASP.NET仅需最小限度的初始设置 ...

  3. ASP.NET Core之跨平台的实时性能监控(2.健康检查)

    前言 上篇我们讲了如何使用App Metrics 做一个简单的APM监控,最后提到过健康检查这个东西. 这篇主要就是讲解健康检查的内容. 没看过上篇的,请移步:ASP.NET Core之跨平台的实时性 ...

  4. ASP.NET Core 之跨平台的实时性能监控

    前言 前面我们聊了一下一个应用程序 应该监控的8个关键位置. . 嗯..地址如下: 应用程序的8个关键性能指标以及测量方法 最后卖了个小关子,是关于如何监控ASP.NET Core的. 今天我们就来讲 ...

  5. 转:asp.net mvc ef 性能监控调试工具 MiniProfiler

    MiniProfiler官网:http://miniprofiler.com/ MiniProfiler的一个特别有用的功能是它与数据库框架的集成.除了.NET原生的 DbConnection类,Mi ...

  6. NanoProfiler - 适合生产环境的性能监控类库 之 基本功能篇

    背景 NanoProfiler是一个EF Learning Labs出品的免费性能监控类库(即将开源).它的思想和使用方式类似于MiniProfiler的.但是,设计理念有较大差异. MiniProf ...

  7. 【转载】Linux系统与性能监控

    原文地址:http://kerrigan.sinaapp.com/post-7.html Linux System and Performance Monitoring http://www.hous ...

  8. Linux系统与性能监控

    原文地址:http://kerrigan.sinaapp.com/post-7.html Linux System and Performance Monitoring http://www.hous ...

  9. 管中窥豹——从对象的生命周期梳理JVM内存结构、GC调优、类加载、AOP编程及性能监控

    如题,本文的宗旨既是透过对象的生命周期,来梳理JVM内存结构及GC相关知识,并辅以AOP及双亲委派机制原理,学习不仅仅是海绵式的吸收学习,还需要自己去分析why,加深对技术的理解和认知,祝大家早日走上 ...

随机推荐

  1. Protocol Buffer技术详解(Java实例)

    Protocol Buffer技术详解(Java实例) 该篇Blog和上一篇(C++实例)基本相同,只是面向于我们团队中的Java工程师,毕竟我们项目的前端部分是基于Android开发的,而且我们研发 ...

  2. VS2010+OpenCV2.4.6永久性配置方法

    1. 配置OpenCV环境变量 计算机->(右键)属性,出现如图1所示界面 单击“高级系统设置”,选中高级(标签)出现如图2所示界面 单击右下方的“环境变量”,弹出如图3所示界面,注意这里最好用 ...

  3. Openresty 与 Tengine

    Openresty 与 Tengine Openresty和Tengine基于 Nginx 的两个衍生版本,某种意义上他们都和淘宝有关系,前者是前淘宝工程师agentzh主导开发的,后者是淘宝的一个开 ...

  4. mybatis 使用resultMap实现数据库的操作

    resultType:直接表示返回类型 resultMap:对外部resultMap的引用 二者不能同时使用 创建一个实体类Role和User public class Role { private ...

  5. Java finally语句到底是在return之前还是之后执行?

    网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下fina ...

  6. [Winform]DataGridView列自适应宽度

    引言 在做winform项目中,数据控件DataGridView的使用多多少少是会用到的,如果不设置它的属性,默认情况下是不会自适应宽度的,你想查看某项的数据,就不得不将标题栏拖来拖去,挺烦的. 方法 ...

  7. gdb 多线程调试

    gdb 多线程调试 http://hi.baidu.com/hcq11/blog/item/9f5bfc6e696209d680cb4a25.html  http://hi.baidu.com/lit ...

  8. httpd/php/mysql的安装-1

    rely:  依赖: relier, reliance , reliable : i don't think he is a reliable man . we must lay stress on ...

  9. tyvj3481 越狱

    描述 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相信房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 输入格式 输入两个整数 ...

  10. thinkphp中模块和操作映射

    模板和操作映射功能是3.1.2版本支持的对模块和操作设置的映射机制,由于可以通过改变配置动态改变(实际真正改变,并非别名)URL访问地址,加强了应用的安全性,而且,映射机制具有URL不区分大小写访问的 ...