[转]Perfmon - Windows 自带系统监测工具
一、 简述
可以用于监视CPU使用率、内存使用率、硬盘读写速度、网络速度等。
Perfmon提供了图表化的系统性能实时监视器、性能日志和警报管理,系统的性能日志可定义为二进制文件、文本文件、SQLSERVER表记录等方式,可以很方便地使用第三方工具进行性能分析。
perfmon.exe 文件位于C:\Windows\System32目录下。使用方法:
1)开始 - 运行,输入 perfmon 后回车,即可打开perfmon.exe。
2)在 perfmon.exe 的左窗格中,单击“系统监视器”(如果未选中)。
3)在右窗格中[单击右键,然后单击“添加计数器”。
4)在“性能对象”列]表中,选择要在 PerfMon.exe 中显示其图形的计数器类别,单击“添加”。
二、常用的性能指标
系统的整体性能由许多因素决定,例如CPU利用率、CPU队列长度、磁盘空间和I/O、内存使用情况、网络流 量等等。对于实时性要求较高的系统而言,对系统关键性指标的有效监控和管理是保证系统高可用性的重要手段,因此,务必制定出明确的系统性能策略规划,并对 这些性能指标进行有效的实时监控。当关键性能指标严重偏离或者系统发生故障时,应该采取有效手段来准确定位问题引发的原因,并通过调优系统配置或改进应用 程序等手段来有效提高系统的可用性。
(一)Perfmon的监控对象
Perfmon提供了比较全面的系统性能指标,并且能够根据性能管理的要求订制日志内容、制定关键指标偏离时的警报措施。《表一》列出了Perfmon可以监控的性能对象,每一个性能对象项下包含多个性能指标计数器。
(二)常用的Perfmon监控对象与指标
以上列出的性能对象总共有上百个性能指标,我们关注一个系统的性能时,不可能关注这么多指标,有些对象对实际的应用系统 影响并不大。但对一个Windows操作系统来说,CPU、Memmory、Disk和Network等关键对象是性能监控中必不可少的项。《表二》列举 了最常用的性能对象的重要指标。
(三)Perfmon对进程的监控指标
一般说来,服务器上都布署了一个或多个应用程序,这些应用程序在运行期间经常体现为若干个应用进程。为了便于监控应用程序的运行情况,在程序设计过程中一 般都会同时布署应用系统的监控程序。Perfmon也设置了进程监控常用指标,这些指标比较直观地体现了进程的运行状况,是进行应用系统监控或应用系统跟 踪调优的依据。《表三》列出了进程监控的主要指标。
二、Perfmon功能之一——性能监视器
在Windows中,性能监视器以一个管理控制台(MMC)单元的形式实现。在windows的开始->运行框中 输入perfmon.msc启动Windows的性能监视器,可以看到类似图一的界面。 性能监视器主要用来对指定的系统性能指标进行实时监控,但这些性能的指标记录不能被保存。如果要保存这些性能日志,可以用后面介绍的“计数器日志”功能。 性能监视器的另外一个功能是对计数器日志生成的日志记录进行非实时的图表化展现。在性能监视器中楞以通过“查看当前活动”或“当看日志数据”功能项来指定 监控的性能指标项目。一般说来,由于性能监视器的显示窗口大小有限,不宜指定太多的实时监控项目,否则窗口中的显示很难突出需要重点监控的项目。我们可以 根据不同的监控目标制订不同的实时监控方案,每一个方案均可以保存为一个MSManagement Console(msc)文件。
三、Perfmon功能之二——计数器日志
前面介绍了系统监视器的功能时提到,系统监视器主要用于重要性能指标的实时监控,它不能保存被监控的性能指标历史数据。 如果需要持续对系统的性能指标采样,就必须用到Peofmon的计数器日志的功能。计数器日志在日志文件中记录指定的系统性能数据,这些日志数据可以用系 统监视器查看或用其他工具处理,这对于分析系统某一段时间内的运行状况或者是交由第三方性能管理工具来进行性能管理十分有用。
为了说明如何使用计数器日志,我们要新建一个日志会话。扩展控制台中的“性能日志和警报”节点下可以看到“计数器日志” 分节点,右击“计数器日志”分节点,选择“新建日志设置”,指定日志设置的名称,点击“确定”,出现图二的对话框,在这里设定要在日志中记录的计数器(即 需要记录的性能指标)。点击“添加对象”按钮,将某个监视对象的所有计数器加入日志记录,或者点击“添加计数器”按钮加入单个计数器。日志文件的默认保存 路径是C:\perflogs目录,在设置时可以根据需要在“日志文件”项下修改。日志文件保存的格式可以根据需要设定成文本文件、二进制文件、SQL数 据库记录。在“计划”项下,可以设置性能日志的启动和关闭时间计划,也可以设置日志关闭后的指定动作。我们可以根据不同的监控需求制订不同的性能日志方 案,每一个方案均可以保存为一个HTML文件。
三、Perfmon功能之三——跟踪日志
Perfmon的跟踪日志功能可以提供对某些重要系统事件的跟踪,也可以指定对特定应用程序的跟踪。跟踪日志以二进制文件保存(默认扩展名为.etl), 可以用tracerpt对日志进行分析,并生成CSV格式的dump文件。该功能目前没有提供直观的配置手段来订制对特定应用程序的跟踪,必须通过编辑系 统的注册表来实现。这一功能主要应用在程序调试、故障分析过程中。图三是订制跟踪日志的对话框,在其“日志文件”、“计划”项下可以设置日志文件的存放路 径、文件大小限制、日志启停计划等项目。
四、Perfmon功能之四——警报
Perfmon的警报功能是指当某个计数器的性能数据达到指定的值时,执行一定的动作,例如发送Email、用NetSend命令发送消息或者运行 指定的程序。也可以指定当警报发生时将警报当作系统的事件记录在系统事件记录里,这样可以很方便地用事件查看器来调阅警报的内容。警报的报警指标设置与性 能计数器的指标相同,针对不同的应用,我们可以制订不同的警报策略。图四示例的是当CPU的IdleTime低于70%时触发一个警报的订制对话框。在 “操作”和|“计划”项下,可以配置警报发生时的指定操作、警报设置的启停动作等。
五、Perfmon布署方法
对Windows系统的性能监控需要有较高的用户权限,Perfmon默认的可执行权限是管理员用户,从系统安全性考虑,不建议将管理员作为日常监控的用 户。Windows2000 Server提供了性能管理用户组,在实施系统的性能监控时,可建立一个该组的普通用户。
Windows提供了Perfmon的两种布署方式:本地监控和远程监控。本地监控产生的日志文件默认保存路径是C:\perflogs目录,在设置时可 以根据需要在“日志文件”项下修改。本地监控产生的日志文件除了可以在本机用性能监视器进行观测外,还可以外传到第三方监测分析平台上。远挰监控可以实现 对局域网内多台监控目标进行集中采样监控,其前提是监控主机与目标主机之间必须建立信任关系,并且打开相应的远程访问控制。在访问控制比较严格的环境下, 远程监控难以布署。布署Permon时还应该考虑志文件的存放问题,如果要长时间收集性能数据,最好调整一下采样间隔时间,如果采样间隔时间设置得太小, 日志文件会快速增。
Perfmon的管理也有两种方法:控制台管理和命令行方式管理。可以通过运行Perfmon.msc调出性能管理的 控制台,并根据监控策略制订、管理控制台。Perfmon的另一种管理方式是命令行方式,Windows提供了一个专门用于管理性能监控的命令 ――Logman,它不仅能够在命令行上启动和停止日志会话,而且能够从命令行创建新的日志会话。有关Logman命令的用法可参阅Logman命令指 南。
还有另外一个命令能方便地采集到系统性能数据,但仅仅是获取数据,并不产生警报和日志记录的动作。这种方式在使用第三方 软件来监控Windows系统的性能时经常用到。Windows提供了一个显示当前性能指标的命令----Typeperf。用Typeperf可以得到 前面提到的Perfmon的所有指标值。Typeperf的标准输出是屏幕显示,我们可以通过输出重定义将结果输出到文本文件当中,并将结果文件传给第三 方系统。这种应用方式下,Typeperf的动作由第三方软件根据需要来管理,也可以通过订制计划任务来定时启动。有关Typeperf命令的用法可参阅 Typeperf命令指南。