Windows 性能监视器是一个 Microsoft 管理控制台 (MMC) 管理单元,提供用于分析系统性能的工具。仅从一个单独的控制台,即可实时监视应用程序和硬件性能,自定义要在日志中收集的数据,定义警报和自动操作的阈值,生成报告以及以各种方式查看过去的性能数据。

启动 Windows 性能监视器:开始-->运行—>输入perfmon-->回车

添加-保存计数器设置:

在Windows 2003中,添加完计数器后,直接按Ctrl+S,就能将设置保存为文件的形式,方便下次直接查看,在Win7中来的不那么直接。

开始-->运行-->输入MMC-->文件-->添加/删除管理单元-->选择性能监视器-->添加,然后在性能(本地)中来添加你的计数器,这样就可以保存了,方便下次查看。

运行截图:

常用的监视计数器:

对象

计数器

说明

.NET CLR Exceptions # of Exceps Thrown / sec 显示每秒钟抛出的异常数。这包括 .NET 异常和转换为 .NET 异常的未受管异常。性能随此数目的增大而下降。
.NET CLR Memory # Bytes in all Heaps 显示其他四个计数器的总和:Gen 0 堆大小、Gen 1 堆大小、Gen 2 堆大小以及大对象堆大小。此计数器表示 GC 堆上当前分配的内存(以字节为单位)。此计数器的值总是比 Process\Private Bytes 的值小,Process\Private Bytes 对进程的 MEM_COMMIT 区域进行计数。Private Bytes minus # Bytes in all Heaps 就是由未受管对象提交的字节数。
用于监视可能的内存泄漏,或者监视受管或未受管对象的内存使用率是否过大。
.NET CLR Remoting Remote Calls/sec 显示每秒调用的远程过程调用的数目。远程过程调用是对调用方所在应用程序域之外的任何对象的调用。此计数器不是一段时间内的平均值;它显示最近两个样本观测值的差除以取样间隔所得的结果。
.NET Data Provider for Oracle NumberOfFreeConnections 连接池中可用连接的数量。
.NET Data Provider for SqlServer NumberOfFreeConnections 连接池中可用连接的数量。
Process % Processor Time 显示所有进程线程用于执行指令的已用处理器时间的百分比。指令是计算机中的基本执行单位;线程是执行指令的对象;进程是运行程序时创建的对象。此计数中包含了处理某些硬件中断和陷阱条件时执行的代码。如果总的处理器时间较长,请使用此计数器确定导致 CPU 利用率很高的进程。
Process Handle Count 显示此进程当前打开的句柄的总数。此数字是此进程中的每个线程当前打开的句柄总数。特定进程中句柄计数的增加可能是发生句柄泄漏的错误进程的症状,这将导致服务器上发生性能问题。此问题并不一定会出现,但是在一段时间内对其进行监视以确定是否发生句柄泄漏十分重要。
Process Thread Count 这个进程中正在活动的线程数目。指令是在处理器中基本的执行单位,线程是指执行指令的对象。每个运行的进程至少有一个线程。
SQLServer:General Statistics User Connections 显示sqlserver目前连接的数量,而不是用户数。如果该计数器超过255,那么你需要将sqlserver的"Maximum Worker Threads" 的配置值设置得比缺省值255高。如果连接的数量超过可用的线程数,那么sqlserver将共享线程,这样会影响性能。"Maximum Worker Threads"需要设置得比你服务器曾经达到的最大连接数更高。
SQLServer:Locks Number of Deadlocks/sec 死锁的数量/秒,死锁对应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验。该计数器的值必须为0。
LogicalDisk % Free Space % Free Space 是所选逻辑磁盘驱动器上总计可用空间所占的百分比。
PhysicalDisk Disk Read Bytes/sec 指在读取操作时从磁盘上传送字节的速率。
PhysicalDisk Disk Write Bytes/sec 指在写入操作时传送到磁盘上的字节速度。

默认状况下,以下两个计数器的开关是关着的,需要配置下%WINDIR%\microsoft.net\Framework64\v2.0.50727\CONFIG\machine.config如下开关的(32和64位操作系统的路径也有不同),否则数据采集不到。

.NET Data Provider for Oracle NumberOfFreeConnections
.NET Data Provider for SqlServer NumberOfFreeConnections

增加配置,并重启相应的进程(重启服务,或者是重启IIS等)

<system.diagnostics><switches><add name="ConnectionPoolPerformanceCounterDetail" value="4"/></switches>
</system.diagnostics>

用C#采集计数器的数据:

虽然Windows自带了perfmon工具,并可以生成报告以及以各种方式查看过去的性能数据,但是有时候我们还是定义自己的一些曲线或者报表,那么就需要将性能监视器的数据收集起来,C#提供了PerformanceCounterCategory(性能对象),PerformanceCounter(性能计数器组件)两个类,提供了操作性能监视器的一些方法,这样我们就能把数据读取出来保存到数据库中或者文件中,可用来随意产生一些曲线或报表,或者报警Mail等。。。

示例代码:

using System;
using System.Diagnostics;
using System.Threading;namespace TestApplication
{public class Program{static void Main(string[] args){Console.WriteLine(GetPerfCount("Process", "% Processor Time", "_Total"));Console.WriteLine(GetPerfCount(".NET CLR Memory", "# Bytes in all Heaps", "_Global_"));Console.WriteLine(GetPerfCount("SQLServer:General Statistics", "User Connections"));Console.Read();}/// <summary>/// 获取计数器样本并为其返回计算所得值--有实例的计数器(对于大多数的计数器)/// </summary>/// <param name="categoryName"></param>/// <param name="counterName"></param>/// <param name="instance"></param>/// <returns></returns>public static float GetPerfCount(string categoryName, string counterName, string instance){PerformanceCounter counter = new PerformanceCounter{CategoryName = categoryName,CounterName = counterName,InstanceName = instance,MachineName = ".",ReadOnly = true};counter.NextValue();Thread.Sleep(200);try{if (counter != null){return counter.NextValue();}}catch (Exception){return -2f;}return -1f;}/// <summary>/// 获取计数器样本并为其返回计算所得值--无实例的计数器/// 比如categoryName=SQLServer:General Statistics,counterName=User Connections/// </summary>/// <param name="categoryName"></param>/// <param name="counterName"></param>/// <returns></returns>public static float GetPerfCount(string categoryName, string counterName){PerformanceCounter counter = new PerformanceCounter{CategoryName = categoryName,CounterName = counterName};counter.NextValue();Thread.Sleep(200);try{if (counter != null){return counter.NextValue();}}catch (Exception){return -2f;}return -1f;}}
}

Windows 性能监视器概述相关推荐

  1. 自定义Windows性能监视器

    Windows 性能监视器是一个很好用的自带监视工具,对于一些基本简单的监视需求可以轻松满足.本文主要总结了一下如何将自己应用中的一些性能数据暴露到性能监视器上方便管理. 什么?不知道什么是Windo ...

  2. Windows性能分析器概述(三)

    四.系统需求 下面的表格列出了安装和运行Windows性能分析器所需要的系统配置: 操作系统 Windows Vista SP1或更高版本,以及Windows Server 2008或更高版本 对于W ...

  3. [原创]性能测试之“Windows性能监视器”

    [原创]性能测试之"Windows性能监视器" 一 Windows性能监视器 以下用Winxp中的"Windows性能监视器"为例说明: 打开控制面板-> ...

  4. (转)Windows 性能监视器工具-perfmon

    Windows 性能监视器工具 如果需要在一台计算机上监视多个 Report Server 实例,可以同时或单独监视这些实例.选择要包括的实例是计数器添加过程的一部分.有关使用 Windows 附带的 ...

  5. [转]Windows 性能监视器工具-perfmon

    2019独角兽企业重金招聘Python工程师标准>>> Windows 性能监视器工具 如果需要在一台计算机上监视多个 Report Server 实例,可以同时或单独监视这些实例. ...

  6. Windows 性能监视器的基本指标说明(CPU,内存,硬盘参数)

    作为一个系统工程师来说,要看懂监控的数据至关重要,关系着优化和分析出现的问题.我是在运维过程中要用到的.因此,今天给出Windows 性能监视器的一些基本指标(CPU,内存,硬盘参数),希望对大家将来 ...

  7. 简要Windows性能监视器

    简要Windows性能监视器: 打开Windows性能监视器的步骤如下: 开始→运行→perfmon→确定 在这里我们可以选择添加我们要监控的计数器,比如:cpu使用率.内存使用量等,作为asp.ne ...

  8. 服务器性能数据收集,使用 Windows 性能监视器收集数据

    若要监视资源使用量和服务器进程,您可以使用 Windows 服务器附带的 Windows 性能监视器 (PerfMon).使用 PerfMon 来收集详细性能信息,包括 CPU 的使用频率.使用的内存 ...

  9. Windows 性能监视器perfmon是干嘛的?一篇文章了解性能监视器基本使用

    Windows 性能监视器perfmon是干嘛的?一篇文章了解性能监视器基本使用 在PerfMon中使用性能计数器 有价值的调试计数器 重要的CPU计数器 内存的重要计数器 ASP.NET重要计数器 ...

  10. 在C/C++代码中使用windows性能监视器

    <编程之美>中的"让CPU占用率曲线听你指挥"一题,作者给出的解法3非常清晰简洁.其思想就是直接查询当前CPU占用率,若过高则Sleep一段时间,否则一直循环.代码使用 ...

最新文章

  1. dialog监听点击空白关闭_为什么App Store打开一片空白?尝试这样解决
  2. tcp/ip 协议栈Linux内核源码分析12 udp套接字发送流程一
  3. 【动态规划】【图论】[NOIP模拟赛]独立集
  4. 爬虫、网页测试 及 java servlet 测试框架等介绍
  5. 【Jenkins】Jenkins : jenkins-2.121.1 安装 与 使用
  6. c语言判断字符串中是否包含非数字,【新手】【求思路】如何判断用户输入的字符串中是否含有非数字?...
  7. 输出源文件的标题,目前执行行的行数,编译时间
  8. 从零开始学习python编程-如何从零开始学python?
  9. next主题设定代码高亮格式
  10. Android:日常学习笔记(8)———开发微信聊天界面
  11. bash大括号参数扩展(Parameter Expansion)
  12. 给机器人罗宾写一封英语回信_人教版5年级英语unit1知识
  13. ( 教程 ) 微信公众号做淘宝优惠券自动查券返利机器人怎么设置?
  14. excel复选框_在Excel公式中使用复选框结果
  15. 计算机 教学活动设计方案,青岛出版社初中信息技术 七年级下册第二单元 第5课 设计活动策划方案 教学设计...
  16. Android 上架应用市场整理
  17. 招投标管理与实务--刘小明老师
  18. 从EXCEL的超链接中批量提取图片
  19. jquery dataTable 参数详解
  20. dz社区模板源码手机自适应

热门文章

  1. Matlab 检测直线并求解直线方程
  2. 鸿蒙os锁屏样式怎么用,怎样设置微信锁屏显示
  3. 【原创】MySQL Replay线上流量压测工具
  4. SQL盲注篇之布尔盲注
  5. tsql 正则_sql 正则表达式匹配
  6. KL散度(双向KL散度) JS散度
  7. 下载卫星影像数据流程
  8. linux中mysql忘记密码
  9. MATLAB绘图函数fplot详解
  10. 3dmax疯狂模渲大师软件有什么使用指南?疯狂模渲大师的目录,教你怎么使用疯狂模渲大师,疯狂模渲大师其实并不难!