Performance Monitor采集性能数据

Windows本身为我们提供了很多好用的性能分析工具,大家日常都使用过资源管理器,在里面能即时直观的看到CPU占用率、物理内存使用量等信息。此外新系统中还加入了一个资源监视器(下图2)能够提供更多更直观有关CPU、I/O、网络方面的性能信息统计与视图。

  

当然仅靠这些工具是不能满足性能分析需求的,从Windows NT4.0时代,Windows就为我们提供了一个叫做Performance Monitor的强有力的性能工具帮助我们分析系统负载找出性能瓶颈,在Windows 7中路径是%windir%\system32\perfmon.msc,您也可以在面板的管理工具中找到它。

下面我们一起来通过几个实验了解它的基本应用。

a.在”监视工具”->”性能监视器”中添加自己需要的性能计数器,然后观察一段时间内的性能数据图表。

    

可以看到里面有极为丰富的计数器可供选择。选好后即可进行即时的数据监测。

b.由当前性能监视设置生成一个htm文件,以后只需要打开这个html文件中即可直接查看此配置下即时的性能数据,操作同在控制台中一样。

 

c.在程序中创建计数器、采集性能数据、操作计数器数据。

FCL中有名为System.Diagnostics的命名空间,里面提供了特定的类,使我们能够与系统进程、事件日志和性能计数器进行交互。PerformanceCounter 类使您能够监视系统性能,而 PerformanceCounterCategory 类则提供新建自定义计数器和类别的方式。

假如我们有名为“SopacoPerformanceCategory”的计数器类型,里面有CounterOne这个计数器,则可以使用诸如“PerformanceCounter counter = new PerformanceCounter("SopacoPerformanceCategory", "CounterOne", false);”的代码获得此计数器实例。PerformanceCounter有像IncrementBy这样原子操作方法,可以在并发情况下正确的修改数值。

下面的代码会在30秒内不断对CounterOne进行随机修改,可以通过性能监视器视图看到其变化。

internal class PerformanceShow_Demo
    {
        private static PerformanceCounter counter = new PerformanceCounter("SopacoPerformanceCategory", "CounterOne", false);
        private static int n = 0;
        private static System.Timers.Timer timer = new System.Timers.Timer(1000);
        static void Main(string[] args)
        {
            timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
            counter.RawValue = 0;
            timer.Enabled = true;
            timer.Start();
            Thread.Sleep(40000);
        }
        private static void timer_Elapsed(object sender, EventArgs e)
        {
            Console.WriteLine(e.ToString());
            counter.IncrementBy(new Random().Next(-10, 20));
            n++;
            if(n > 30)
                timer.Stop();
        }
    }

d.使用数据收集器,开启自动监测并持久化监测数据

上面过程中我们一直是通过实时图标来分析性能数据,更多时候我们需要的是让统计工具自动运行在后台,并将数据记录到日志中。Performance Monitor为我们提供了这种便利。首先在“数据收集器集”->“用户定义”右键选择“新建->数据收集器集”(默认添加了NT Kernel和PerformanceCounter两个计数器)。然后在建好的数据收集器中添加、设置好所需的数据收集器(如图)。

  

这样我们就可以启动这个数据收集器集让他自动采集数据。当开始数据采集后你会发现左侧列表中在报告栏内会自动增加你这个数据集器集的报告,可以直接查看数据报告和报表或将报告导出到其他位置。

  

网名:

无疆_炎戎
无疆_寒冰

实名:

姜萌

http://www.wjiangathpc.spaces.live.com/
http://www.cnblogs.com/wJiang

Performance Monitor采集性能数据的更多相关文章

  1. vs命令行采集性能数据

    VSPerfASPNETCmd /output:d://PerformanceReport.vsp http://localhost/store/cart.aspx

  2. 性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据

    基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据   by:授客 QQ:1033553122 实现功能 测试环境 环境搭建 使用前提 使用方法 运行程序 效果展 ...

  3. 性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机或Docker容器性能数据

    基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据   by:授客 QQ:1033553122 实现功能 1 测试环境 1 环境搭建 3 使用前提 3 使用方法 ...

  4. 使用 W3C Performance 对象通过 R 和 JavaScript 将浏览器内的性能数据可视化[转]

    当考虑 Web 性能指标时,需要关注的目标数字应该是从您自己的用户那里获得的实际用户指标.最常见的方法是利用 Splunk 之类的工具来分析您的机器数据,该工具支持您分析和可视化您的访问权限和错误日志 ...

  5. iOS-监听原生H5性能数据window.performance

    WebKit-WKWebView iOS8开始苹果推荐使用WKWebview作为H5开发的核心组件,以替代原有的UIWebView,以下是webkit基本介绍介绍: 介绍博客 Webkit H5 - ...

  6. Send email alert from Performance Monitor using PowerShell script (检测windows服务器的cpu 硬盘 服务等性能,发email的方法) -摘自网络

    I have created an alert in Performance Monitor (Windows Server 2008 R2) that should be triggered whe ...

  7. .Net最佳实践3:使用性能计数器收集性能数据

    本文值得阅读吗? 本文讨论我们如何使用性能计数器从应用程序收集数据.我们将先了解的基本知识,然后我们将看到一个简单的示例,我们将从中收集一些性能数据. 介绍: - 我的应用程序的性能是最好的,像火箭 ...

  8. Orion Network Performance Monitor 软件在网络管理中的应用

    Orion Network Performance Monitor 软件在网络管理中的应用       Orion Network Performance Monitor是完全的带宽性能和故障管理软件 ...

  9. 使用performance进行网页性能监控

    由于项目需要, 需要对网页的一些性能进行监控, 接触到了performance, window.performance 提供了一组精确的数据,经过简单的计算就能得出一些网页性能数据, 将这些数据存储为 ...

随机推荐

  1. Doxgen+Graphiz+htmlhelp配置

    查看一些开源码常常被一些函数的调用关系给绕进去.找个工具生成个调用关系图或简单的文档对于帮助阅读程序有非常大的帮助. 1 doxgen+graphviz+htmlhelp简单介绍 1.1 doxgen ...

  2. 自编Ps教程—我的ps图片赞赏

    上篇讲述了主要的ps概念和操作,这里不再讲述了,主要的操作学好了,其它的都简单,下面我会把我闲暇时间天马行空的小作品上穿,以供大家闲暇时间或者工作累了的时候赞赏! 以后还会在这里上传哦!喜欢就收藏吧! ...

  3. 【从翻译mos文章】SGA_TARGET与SHMMAX关系

    SGA_TARGET与SHMMAX关系 参考原始: Relationship Between SGA_TARGET and SHMMAX (文件 ID 1527109.1) 申请: Oracle Da ...

  4. C++:抽象基类和纯虚函数的理解

    转载地址:http://blog.csdn.net/acs713/article/details/7352440 抽象类是一种特殊的类,它是为了抽象和设计的目的为建立的,它处于继承层次结构的较上层. ...

  5. Linux下将UTF8编码批量转换成GB2312编码的方法

    Linux下将UTF8编码批量转换成GB2312编码的方法 在sqlplus中导入UTF8编码的sql脚本就会出现乱码错误,这时就需要将UTF8编码转换成GB2312编码,下面为大家介绍下在Linux ...

  6. iScreenLocker 3.1.8 安卓锁屏通知--苹果一样的体验

    *软件介绍: 苹果锁屏通知(iScreenLocker)是一款android上ios风格的锁屏软件.它颠覆安智通知设计,将原来状态栏的通知搬到锁屏界面上来,能够在桌面轻松收发短信,微博,微信等消息.它 ...

  7. Android它Service

    服务是一段代码的后台执行. 无法处理,也不是螺纹,但它是在进程和线程的执行. Android该服务与Activity不同,不能与用户交互,无法启动自己. 媒体播放服务.当用户退出媒体选择用户界面,不过 ...

  8. CentOS7 编译安装LNMP

    (文章来自:http://www.cnblogs.com/i-it/p/3841840.html,请各位到这个网址去看原文的) LNMP(Linux-Nginx-Mysql-PHP),本文在CentO ...

  9. Linux内核IP层的报文处理流程(一)

    本文主要讲解了Linux内核IP层的整体架构和对从网卡接受的报文处理流程,使用的内核的版本是2.6.32.27 为了方便理解,本文采用整体流程图加伪代码的方式对Linxu内核中IP整体实现架构和对网卡 ...

  10. CMD经常使用的命令

    Win7Excuting订单 win+R.运行该快捷方式.下面3一个人必须知道: ping 它是用来检查网络是否通畅或者网络连接速度的命令. 作为一个生活在网络上的管理员或者黑客来说,ping命令是第 ...