Perfmon简介

Perfmon(Performance Monitor)是一款Windows自带的性能监控工具,提供了图表化的系统性能实时监视器、性能日志和警报管理。通过添加性能计数器(Performance Counter)可以实现对CPU、内存、网络、磁盘、进程等多类对象的上百个指标的监控。其中,性能日志可定义输出格式为二进制文件、文本文件、SQLSERVER记录等,以方便后续使用第三方工具进行分析。

Perfmon数据收集器使用

Perfmon支持选择性的监控感兴趣的数据收集器,指标范围广、粒度细,而且支持将监控数据持久化。使用方法:

  • Win+r打开运行窗口,输入 perfmon 后回车打开perfmon.exe。
  • 展开“数据收集器集”,右键单击“用户定义”,指向“新建”,然后单击“数据收集器集”,将启动“创建新数据收集器集”向导。
  • 按照向导一步步创建新的数据收集器。推荐手动创建,选择自己感兴趣的指标监控。
  • 创建好后,通过工具栏的启动按钮可以启动数据收集器。
  • 点击工具栏上的停止按钮就可以停止数据收集器。之后,可以在右侧导航栏选择”报告”,展开“用户定义”,查看报告。
  • 报告也可以另存为csv文件做进一步分析。

Perfmon对进程的监控指标

一般来说,我们主要关注自己进程的CPU、内存等性能数据。Perfmon设置了进程监控常用指标,这些指标比较直观地体现了进程的运行状况,是进行应用系统监控或应用系统跟踪调优的依据。先监控这些指标需要在创建数据收集器的时候选择监控process对象,并且选定对象的实例为想要监控的进程。

下面表格列出了Process对象的主要指标:

性能对象 计数器 提供的信息
Process % Privileged Time % Privileged Time 是在特权模式下处理线程执行代码所花时间的百分比。当调用 Windows 系统服务时,此服务经常在特权模式运行,以便获取对系统专有数据的访问。在用户模式执行的线程无法访问这些数据。对系统的调用可以是直接的(explicit)或间接的(implicit),例如页面错误或间隔。
Process % Processor Time % Processor Time 是所有进程线程使用处理器执行指令所花的时间百分比。指令是计算机执行的基础单位。线程是执行指令的对象,进程是程序运行时创建的对象。此计数包括处理某些硬件间隔和陷阱条件所执行的代码。
Process % User Time % User Time 指处理线程用于执行使用用户模式的代码的时间的百分比。应用程序、环境分系统和集合分系统是以用户模式执行的。Windows 的可执行程序、内核和设备驱动程序不会被以用户模式执行的代码损坏。
Process Creating Process ID value Creating Process ID value 指创建该进程的父进程号。
Process Elapsed Time 该进程运行的总时间(用秒计算)。
Process Handle Count 这个处理现在打开的句柄总数。这个数字等于这个处理中每个线程当前打开的句柄的总数。
Process ID Process ID Process 指这个处理的特别的识别符。ID Process 号可重复使用,所以这些 ID Process 号只能在一个处理的寿命期内识别那个处理。
Process IO Data Bytes/sec 处理从 I/O 操作读取/写入字节的速度。这个计数器为所有由本处理产生的包括文件、网络和设备 I/O 的活动计数。
Process IO Data Operations/sec 本处理进行读取/写入 I/O 操作的速率。这个计数器为所有由本处理产生的包括文件、网络和设备 I/O 的活动计数。
Process IO Other Bytes/sec 处理给不包括数据的 I/O 操作(如控制操作)字节的速率。这个计数器为所有由本处理产生的包括文件、网络和设备 I/O 的活动计数。
Process IO Other Operations/sec 本处理进行非读取/写入 I/O 操作的速率。例如,控制性能。这个计数器为所有由本处理产生的包括文件、网络和设备 I/O 的活动计数。
Process IO Read Bytes/sec 处理从 I/O 操作读取字节的速度。这个计数器为所有由本处理产生的包括文件、网络和设备 I/O 的活动计数。
Process IO Read Operations/sec 本处理进行读取 I/O 操作的速率。这个计数器为所有由本处理产生的包括文件、网络和设备 I/O 的活动计数。
Process IO Write Bytes/sec 处理从 I/O 操作写入字节的速度。这个计数器为所有由本处理产生的包括文件、网络和设备。
Process IO Write Operations/sec 本处理进行写入 I/O 操作的速率。这个计数器为所有由本处理产生的包括文件、网络和设备 I/O 的活动计数。
Process Page Faults/sec Page Faults/sec 指在这个进程中执行线程造成的页面错误出现的速度。当线程引用了不在主内存工作集中的虚拟内存页即会出现 Page Fault。如果它在备用表中(即已经在主内存中)或另一个共享页的处理正在使用它,就会引起无法从磁盘中获取页。
Process Page File Bytes Page File Bytes 指这个处理在 Paging file 中使用的最大字节数。Paging File 用于存储不包含在其他文件中的由处理使用的内存页。Paging File 由所有处理共享,并且 Paging File 空间不足会防止其他处理分配内存。
Process Page File Bytes Peak Page File Bytes Peak 指这个处理在 Paging files 中使用的最大数量的字节。
Process Pool Nonpaged Bytes Pool Nonpaged Bytes 指在非分页池中的字节数,非分页池是指系统内存(操作系统使用的物理内存)中可供对象(指那些在不处于使用时不可以写入磁盘上而且只要分派过就必须保留在物理内存中的对象)使用的一个区域。这个计数器仅显示上一次观察的值;而不是一个平均值。
Process Pool Paged Bytes Pool Paged Bytes 指在分页池中的字节数,分页池是系统内存(操作系统使用的物理内存)中可供对象(在不处于使用时可以写入磁盘的)使用的一个区域。这个计数器仅显示上一次观察的值;而不是一个平均值。
Process Priority Base 这次处理的当前基本优先权。在一个处理中的线程可以根据处理的基本优先权提高或降低自己的基本优先权。
Process Private Bytes Private Bytes 指这个处理不能与其他处理共享的、已分配的当前字节数。
Process Thread Count 在这次处理中正在活动的线程数目。指令是在一台处理器中基本的执行单位,线程是指执行指令的对象。每个运行处理至少有一个线程。
Process Virtual Bytes Virtual Bytes 指处理使用的虚拟地址空间的以字节数显示的当前大小。使用虚拟地址空间不一定是指对磁盘或主内存页的相应的使用。虚拟空间是有限的,可能会限制处理加载数据库的能力。
Process Virtual Bytes Peak Virtual Bytes Peak 指在任何时间内该处理使用的虚拟地址空间字节的最大数。
Process Working Set Working Set 指这个处理的 Working Set 中的当前字节数。Working Set 是在处理中被线程最近触到的那个内存页集。如果计算机上的可用内存处于阈值以上,即使页不在使用中,也会留在一个处理的 Working Set中。当可用内存降到阈值以下,将从 Working Set 中删除页。如果需要页时,它会在离开主内存前软故障返回到 Working Set 中。
Process Working Set Peak Working Set Peak 指在任何时间这个在处理的 Working Set 的最大字节数。

监控CPU

利用Perfmon监控进程的% Processor Time和% User Time这2个计数器可以监控其CPU使用,分析CPU使用是否存在异常。% Processor Time记录了进程中使用CPU的百分比;% User Time记录了进程用户模式使用CPU的百分比;如果这2个值一直较大,或者持续升高,则可能存在CPU使用异常的问题。

监控内存

利用Perfmon监控进程的Handle Count、Virtual Bytes和Working Set这3个计数器可以监控其内存使用,分析是否存在内存泄漏。Handle Count记录了进程当前打开的句柄个数;Virtual Bytes记录了进程在虚拟地址空间上使用的虚拟内存大小;Working Set记录了操作系统为程序进程分配的内存总量,如果这个值不断持续增加,而Virtual Bytes却跳跃式地增加,则很可能存在内存泄露问题。

Perfmon监控Windows进程性能相关推荐

  1. 用Spotlight on windows 实时监控Windows服务器性能

    用Spotlight on windows 实时监控Windows服务器性能 2010-02-03 10:30:25|  分类: else |  标签: |字号大中小 订阅 用Spotlight on ...

  2. zabix监控linux进程名称,Zabbix监控Windows进程重启

    前段时间,一个朋友咨询我怎么监控Windows进程的重启.生产环境有监控进程的启动和关闭,但重启还没想过.经过一番思考和摸索后成功完成了监控,下面把监控思路和方法分享给大家. 我首先想到的是通过Zab ...

  3. Zabbix安装(十):监控windows进程

    1.监控windows进程的几个KEYS: proc.mem[<name>,<user>,<mode>,<cmdline>] Memory used b ...

  4. zabbix监控windows进程

    配置相关信息  server: linux centos 6.8                           agent: windows server 2008 r2             ...

  5. python控制系统进程_python 监控windows进程

    python os.startfile python实现双击运行程序 python监控windows程序 监控进程不在时重新启动 用python监控您的window服务 原创作品,允许转载,转载时请务 ...

  6. 如何监控Windows进程的句柄资源

    HViewer是一款专门用来进行Windows程序的句柄资源监测的软件,但不能对指定进程的句柄资源进行自动的监测,为此我写了一个HViewerSpy程序来辅助进行自动监测,在结束监测后可以统计出句柄的 ...

  7. 使用虚拟机自省技术在R0层监控获取进程调用的dll库和dll版本

    一.问题提出 在Windows操作系统中,dll属性查看的版本信息是在R3层获取的,如下图所示,在项目中经常要保证监控获取的透明性,能否在R0层直接获取这些信息? 二.libvmi简介 libvmi是 ...

  8. perfmon——使用windows系统自带的性能监视器监控进程信息

    第一次使用perfmon监控应用进程的信息,步骤总结如下: 第一部分 性能监视器 1.快捷键Win+R打开运行界面,输入"perfmon"命令后回车即可打开windows的性能监视 ...

  9. 系统性能监控-Windows自带性能监控器

    1.引言 在性能测试过程中,往往需要对系统应用服务器,数据库服务器等服务端资源使用情况进行监控,以获取服务器性能数据,协助判断服务器性能是否满足性能需求:对于不同的服务器类型,监控服务器的方式也不尽相 ...

  10. Windows/Linux性能监控软件>csv文件,方便生成图表

    关键词:windows性能监控工具 linux性能监控工具 windows进程监控工具 linux进程监控工具 监控进程存活/状态 performance_monitor 基于psutil开发的Win ...

最新文章

  1. Spring Boot 实现定时任务的 4 种方式
  2. php 不等待返回的实现方法(异步调用)
  3. 设置NotePad++设置不打开上次关闭的文件
  4. epoll 边沿触发 非阻塞 IO 服务器
  5. 存储过程内基础语法---补充while循环
  6. python 文件读取报错 ‘utf-8‘ codec can‘t decode
  7. robocopy 备份_windows7自带功能robocopy 数据迁移和备份
  8. chap1统计学习及监督学习
  9. 贵州省谷歌地球高程DEM等高线下载
  10. 全国大学生数学建模竞赛首战一等奖经验分享
  11. 计算机为啥启用不了网络发现,Win7“网络发现”功能启用不了的原因和解决方法...
  12. 解决Windows系统无法复制粘贴问题
  13. 使用pycharm出现黄色框的情况
  14. 你知道小米手机便签如何导入录音和视频文件吗?
  15. 尼古拉*特斯拉与通古斯大爆炸
  16. 树莓派siri homekit_米家设备也能喊 Siri 控制,手把手教你把米家设备接入 Homekit
  17. spring boot + rabbitMq整合之死信队列(DL)
  18. 数据结构与算法之Python实现——单链表
  19. 最详细的Cydia使用教程------完全版。新补充Cydia1.1.1离线安装(升级)方法。
  20. 2012威盛软件类面试(一上午三轮)

热门文章

  1. Egret 利用ImageLoader加载服务器图片
  2. Graphics画图自定义画笔
  3. JAVA7-6 约分最简分式 (15 分)
  4. 第三集 怪物学院 第十八章
  5. ESP32-C3 SPI salve示例错误
  6. 图像宽度所占字节必须是4的倍数详解
  7. saas、paas、laas 的概念与区别
  8. Spring漫画学习笔记(二) 什么是BeanFactory
  9. 医疗管理系统(Java毕业设计-Springboot项目)
  10. 如何写出一份完美的BP(商业计划书)?