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

监控性能计数器

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

在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. hdu 1261 字串数

    解题思路:ACM紫书 第十章 P319 有重复元素的全排列 答案: 所有数的和的阶乘 除以 每个数阶乘的乘积 因为给定 (26*12)! 会爆掉(long long),这里用java 的BigInte ...

  2. 高性能的分布式内存对象缓存系统Memcached

    Memcached概述   什么是Memcached? 先看看下面几个概念: Memory:内存存储,不言而喻,速度快,对于内存的要求高,不指出的话所缓存的内容非持久化.对于CPU要求很低,所以常常采 ...

  3. UrlConnection连接和Socket连接的区别

    关于UrlConnection连接和Socket连接的区别,只知道其中的原理如下: 抽象一点的说,Socket只是一个供上层调用的抽象接口,隐躲了传输层协议的细节. urlconnection 基于H ...

  4. explicit构造函数

    explicit构造函数 Explicit Constructors(显式构造函数)收藏 按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面 ...

  5. CentOS创建免密码SSH(密钥)

    1.输入以下命令:ssh-keygen -t rsa 2.输入命令ls:产生两个文件:id_rsa id_rsa.pub 3.复制id_rsa.pub,并命名为authorized_key cp ~/ ...

  6. java动态生成带下拉框的Excel导入模板

    在实际开发中,由于业务需要,常常需要进行Excel导入导出操作.以前做一些简单的导入时,先准备一个模板,再进行导入,单有十几. 二十几个导入模板时,往往要做十几.二十几个模板.而且,当在模板中需要有下 ...

  7. 基于Node.js + jade + Mongoose 模仿gokk.tv

    原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 关于gokk 大学的娱乐活动基本就是在寝室看电影了→_→,一般都会选择去goxiazai.cc上看,里面的资源多,质量高 ...

  8. 读<你必须知道的.NET>IL指令笔记

    IL指令笔记: 1.newObj和initObj MSDN解释:newObj用于分配和初始化对象,而initObj用户初始化值类型 newObj解释: (1):从托管堆分配指定类型所需要的全部内存空间 ...

  9. Spark-1.0.0 standalone分布式安装教程

    Spark目前支持多种分布式部署方式:一.Standalone Deploy Mode:二Amazon EC2.:三.Apache Mesos:四.Hadoop YARN.第一种方式是单独部署,不需要 ...

  10. socket基本

    fd_set用法: http://blog.sina.com.cn/s/blog_5c8d13830100erzs.htm socket连接: lpszHost="127.0.0.1&quo ...