对于性能测试行业被神化了的loadrunner,有很多功能,例如监控服务器cpu ,内存等信息;
对于初学者会认为是神器,性能测试不是loadrunner,一般说的性能测试都会认为用loadrunner录制就ok了;其实不然;
今天主要是说windows性能监控器Perfmon,为什么要说一嘴loadrunner呢?
其中loadrunner监控windows系统数据就来源于Perfmon;所以不用loadrunner的监控,可以直接用Perfmon,监控内容要比loadrunner多很多;
如 果要查看系统的内存占用、CPU占用等性能信息,大家通常会想到Windows的任务管理器,不过在Windows 2000/XP中还有一个功能更为强 大的工具,可以查看更为详细的系统性能信息。通过这些数据可以了解系统的工作状态以及资源的使用情况,而且它还具备日志记录和警报功能。根据日志记录可以 诊断系统性能问题,从而优化系统。通过警报功能则可以监视系统中的性能数据,当达到指定条件时及时通知用户,可谓是电脑的“火警”监测器(下面主要以 Windows XP为例,Windows 2000基本相同)。
打开“火警”监测器
单击“控制面板→管理工具→性能”,或在开始菜单“运行”栏中输入“Perfmon.msc”即可打开系统性能管理工具,在左边可以看到功能分为“系统监视器”和“系统日志和警报”两大模块。
系统监视器——透过现象看本质
1.理解重要概念
系统监视器以图形方式实时显示出指定系统性能数据。在使用前,首先需要理解一些概念的含义。
(1)性能对象:所谓性能对象,就是指影响系统性能表现最关键的几个部件:CPU、内存、硬盘等。Windows XP从它们那里获得性能数据。要监视系统状态,首先就要选择这些对象。
(2)
性能计数器:上面提到的关键部件的性能随时都在变化,是动态的数据,所以必须有一台“摄像机”随时监控它们,并把记录下来的性能表现随时回放给我们。每个
性能对象的计数器就扮演着这样的角色,每个计数器用于描述与性能有关的特定方面的数据。为了统一衡量标准,所以性能数据都以具体数值来表示。例
如,“Memory”(内存)对象提供的“Pages/sec”(分页/秒)计数器跟踪虚拟内存读取和写入速度,也就是每秒处理的分页数。
什么是分页(Page)?
还
记得我们今年第5期《虚拟内存到底应该怎么设?》吗?里面介绍了“Page”这个概念,再让我们一起复习一下吧:为了便于管理和存放数据,Windows
会将物理内存(RAM)与虚拟内存分割成许多小块,称为Page(分页),每个Page为4KB,它也是内存在Windows系统中的单位,每个Page
都有编号。程序运行时,系统就会将该程序所需文件先从硬盘调入并保存到这些内存分页中,之后要用那个文件,只需指明文件所在相应分页的编号即可,调用起来
非常方便。Windows 2000/XP的虚拟内存文件Pagefile.sys被称为分页文件(或页面文件)。
2.如何阅读监视器中的数据
在
Windows XP中,系统监视器默认会装入三个性能计数器:“Pages/sec”(内存分页/秒)、
“Avg. Disk Queue Length”(磁盘访问序列的平均值)和“% Processor Time”(处理器执行有效线程时间的百分
比)。它们分别以黄、蓝、绿三种颜色的线条来表示。在窗口右边的图表中可以看到实时的计数器曲线图表(单击工具栏中的按钮切换成直方图或者报表显示),图
表中的红色竖线在不断向右移动,它表示图表的更新过程。在下面的列表框中显示了三个计数器的详细资料,包括计数器所属的性能对象以及所属电脑信息,选中某
个计数器,然后单击工具栏中的“突出显示”按钮,可以让该计数器的曲线在图表中以粗白线的形式显示出来,更便于观察(见图1)。
三个关键性能计数器
★“Pages/sec”(内存分页/秒):主要用来表示平均每秒从虚拟内存中进行读取和写入的内存分页数。应用程序运行时,并没有把全部内容都加载到内存中,而是当内存中没有所需信息时才会到硬盘中调用。调用的内存分页越多、越频繁,系统性能就越差。
★“Avg. Disk Queue Length”(磁盘访问序列的平均值):这个计数器的功能实际上用于多个物理磁盘共存的时候,此时磁盘性能会超过单个硬盘的性能,如果你安装有多块硬盘,那么这个计数器有时会显示出100%(甚至更高)的状态。
★“%Processor Time”
(处理器执行有效线程时间的百分比):它反映的是CPU实际花费在有效线程执行和请求服务处理上的时间,用100%减去该计数器的读数就是系统处于空闲状
态的时间。CPU不像收款员,它不会干坐在那里等待下一个任务的到来,而必须总有一些事情去做。就像我们打开电脑,不管是否进行操作,它的电源线上始终有
电流流过,为了保证CPU始终有事可做,当它没有其他任务时,Windows便为它准备了另一件事,就是调用“空闲进程”(也就是我们以前曾经介绍过的
“System Idle Process”,在系统没有什么操作时,它常常会显示为99%或100%)。实际上,系统在计算处理器时间时,并不是对每个
不同的线程运行时间进行统计,而只是对空闲进程的运行时间进行计算,然后只要简单地用100%减去空闲进程的时间,就得到了
“%Processor Time”。
下面我们通过一个实例来了解一下系统监视器在内存分析中的应用。
实例1:我的电脑需要增加内存吗?
内
存使用情况是影响系统性能的最重要因素。当内存不足时,就会使用系统页面文件,虽然这样可以使系统得到更多可用内存,但毕竟硬盘速度和内存速度相差很多,
频繁读取和写入页面文件,会降低系统性能。通过系统监视器,可以观察到系统内存不足以及页面文件的使用情况,从而指导你决定是否该添加物理内存。
添加计数器
首
先要添加一个“Memory”对象的“Available MBytes”(可用内存数)计数器。在图表中右击,选择“添加计数器”打开对话框,选中“使
用本地计算机计数器”选项,并在下面的“性能对象”下拉框中选择“Memory”对象。下面会列出该对象的性能计数器,选中
“Available MBytes”后单击“添加”按钮(见图2)。单击“说明”按钮可查看该计数器的功能描述。新添加的计数器会显示在主界面下的计数
器列表中,不过默认的线条颜色可能会与已经存在的计数器一样,这时可以右击“Available MBytes”计数器,选择“属性”,在打开的对话框中
“颜色”下拉框中选择其他颜色即可。
分析计数器
“Available MBytes”
计数器表明了当前可用的内存字节数,如果它的值小于5MB,说明物理内存可能不足,或某些程序没有释放内存。这里还需要结合列表中已经存在的
“Pages/sec”计数器进行综合分析。该计数器代表页面文件的交换速度,如果“Pages/sec”的值为20或更大,表明系统使用内存页面文件比
较频繁,这时可尝试退出那些大内存占用程序,并查看“Pages/sec”计数器,看内存页交换速率是否有显著变化,如果变化明显,说明内存不足的可能性
极大,需要添加内存。
小提示
系统监视器默认的三个计数器无法直接删除,但它们会降低监视器启动的速度,如果要让监视器启动时不装入任何计
数器,可以打开Windowssystem32目录,取消“perfmon.msc”文件的只读属性,然后重启性能管理工具,选中要删除的计数器,单击工
具栏中“删除”按钮,然后选择菜单“文件→保存”,即可将修改后的“perfmon.msc”文件保存到磁盘,再次启动时,就不会出现被删除的计数器了。
通过此方法你也可以定制自己需要的启动计数器。
3.其他常用性能计数器
小提示
就像任何程序一样,系统监视器本身也要占用一定资源。它通常会使用最少5MB内存和1%~5%的CPU时间。当然,磨刀不误砍柴功,这点代价换来对系统的了解,还是值得的。
实例2:软件和硬件,到底谁是元凶?
有些朋友会发现自己的电脑配置并不低,但用起来感觉却很慢,这时利用性能监视器,可以比较轻松地找出问题到底出在硬件还是软件上。下表是常用的计数器,如果数值超过后面的“查看值”,则需要关注了。
基本计数器
对象 计数器 查看值
Processor %Preocessor Time(处理器时间) >80%
Physical Disk %Disk Time(磁盘时间) >80%
Memory Pages/sec(分页/秒) >12
(1)快速识别硬件故障
对
于硬件故障,原因和现象比较复杂,一般不好判断。这里介绍一个简单的识别方法:在Processor对象下面分别建立“%Interrupt Time”
和“%Processor Time”两个计数器。运行这个计数器一段时间,看看这两个计数器在同一时间是否都比较高(超过80%),如果都高,那么很可
能是硬件问题。
一般来说,如果系统本身比较老或刚搬动过,那么很可能是电脑中的插卡松动,需要插紧,同时还有机箱中灰尘过厚也会引发硬件问题;也可能是硬件驱动程序有问题,需要更新;或者硬件存在中断或DMA冲突;存在一些比较老的设备,比如:ISA卡等。
如何查找有问题的硬件呢?如果发现两个计数器同时都比较高,可再观察正在进行的操作,比如:正在听音乐,那么可能就是声卡的问题了。
(2)捉出软件“罪犯”
如
果排除了硬件故障,就要从软件方面找原因了。按照同样方法,可以建立一个“%Processor Time”的计数器,在窗口右侧选择要监视的进程项目。
按照这样的方法,把怀疑有问题的进程依次监视起来,然后就可以用曲线图查看了。比如,我们怀疑Word、QQ、Photoshop以及一款杀毒软件是系统
性能下降的原因,就分别监视这几个软件的进程,一般和他们主程序的名称是一致的。
监视开始后,可以在曲线图上看到这几个进程使用CPU时间的走势,如果有某个程序一直在曲线图的上层,如超过80%以上,那么它是影响性能的主要原因。应该尽快关闭这个进程,重启电脑,看看能否解决问题,如果不能,则应该安装补丁程序或更换到最新版本。
小提示
根据我们的经验,16位程序往往会在很大程度上影响系统性能,如果在任务管理器的“进程”列表中看到“NTVDM”和“WOWEAEC.exe”,那么可以确定当前有16位程序在运行。
性能日志和警报——系统状态的晴雨表
在主界面左边展开“性能日志和警报”节点,可以看到3个子模块:计数器日志、跟踪日志和警报。下面通过两个实例来了解其具体使用。
实例1:通过计数器日志设置最佳页面文件
我
们知道,页面文件(也就是常说的虚拟内存)的大小是影响系统性能的重要因素。无论是系统自动分配还是公式化的1.5倍内存设置,都不是最优的设置方法,通
过计数器可以观察到系统真实的页面文件使用情况。不过在系统监视器中只能简单地查看实时数据,而通过计数器日志记录功能则可以提供一个长时间的页面文件数
据报告。可根据数据分析系统对页面文件的需求,做出合理设置。
首先要设定一个512MB的大页面文件。打开“控制面板→系统→高级”选项卡,单击
“性能”中的“设置”按钮,在打开的对话框中单击“高级”选项卡,点击“更改”按钮,选择“自定义大小”选项,并指定页面文件的“初始大小”和“最大值”
均为“512”MB,然后单击“设置”按钮,重启系统使新页面文件生效。
决定页面文件的大小,就要监视系统对当前这个页面文件的使用情况,这需要
先添加一个计数器。在性能管理工具中右击左边的“计数器日志”,选择“新建日志设置”,输入名称“页面文件”后回车,出现计数器设置对话框。在“常规”选
项卡中单击“添加计数器”按钮,在“性能对象”下拉框中选择“Paging File”,并在下面选择“% Usage Peak”计数器(见图3),右
边的“从列表选择范例”中选择“_Total”,然后单击“添加”按钮,并单击“关闭”按钮返回。
在“数据采样间隔”中设置时间间隔为“1分钟”,再单击“日志文件”选项卡(见图4),在“日志文件类型”下拉框中选择“文本文件(逗号分隔)”,同时记住下面的“D:PerfLogs页面文件_000001.csv”,这是日志文件的保存路径和文件名。
单击“确定”按钮退出计数器设置,这时添加的计数器日志会自动运行。在电脑中像平时一样进行各种日常操作,并尽可能多地打开和关闭各种常用的应用程序和游戏,一般需要经过几个小时使用后,才能通过计数器日志得到比较全面的结果。
右
击“页面文件”计数器选择“停止”,中止计数器日志的运行。然后用记事本打开“D:PerfLogs页面文件_000001.csv”文件,文件中每个时
间段后面的数值表示当时页面文件的使用比率峰值,可以看出几乎所有的记录都显示页面文件使用率的峰值不超过50%(见图5),因此完全可以把页面文件的数
值设置为当前值的50%,即256MB,这是一个比较合理的数值。而最大值则视情况而定,比如:你偶尔还会运行一些狂占内存的软件,那么可将最大值设置为
1GB或更多(视剩余空间而定)。如果你平时的操作基本固定,那么可考虑把页面文件的“初始大小”和“最大值”设置为同样大小,这样会减少磁盘碎片的产
生。
这里介绍的方法适合硬盘空间相对紧张,并希望经常了解系统状况的用户。虚拟内存各部分的常规配置方法,请参看本刊2004年第5期《虚拟内存到底应该怎么设?》一文。
你知道吗?
用Excel分析报告内容
通
过一段时间监测,你收集了日志文件,文件格式都是CSV,这种格式是专为电子表格设计的。我们可以利用Excel,把它做成饼图或是曲线图,直观地了解不
同时间内的页面文件变化。同样方法,也可以监视内存等对象的变化趋势。使用方法是在Excel中直接打开CSV文件,然后使用“插入→图表→图表向导”的
命令进一步进行设计。
实例2:DIY一个内存不足报警器
前面介绍了通过“Available MBytes”计数器可以观察系统可用内存不足的情况,当可用内存极低时,就会影响到系统性能。通过“警报”功能监视该计数器,当它的数值低于20MB时自动通过信使消息发出警报提示,做到“防患于未然”。
添加警报计数器。右击“警报”节点,选择“新建警报设置”,输入名称“内存不足”,在打开的对话框中单击“常规”选项卡,单击“添加”按钮,按前面介绍的方法添加“Memory”对象中的“Available MBytes”计数器。
设置警报条件。在“将触发警报,如果值是”后面的下拉框中选择“低于”,后面输入数值“20”,也就是当该计数器数值低于“20”时(即可用内存低于20MB)触发警报条件。然后在“数据采样间隔”中设置时间间隔为30秒(见图6)。
单击“操作”选项卡(见图7),选中“发送网络信息到”选项,并在下面输入你的计算机名(在添加计数器时可以看到你的计算机名)。当然,使用这种警报方式需要系统中没有关闭信使服务。最后单击“确定”按钮保存设置,添加的“警报”将会自动启动运行。
现在就可以关闭性能管理工具,正常使用电脑了。当系统可用内存低于20MB时,你将会收到一个信使消息提示,这时就需要退出部分程序,腾出内存或重启系统,提前避免程序失去响应的情况。
小提示
★在“操作”选项卡中还可以选择使用其他警报方式,例如写入日志、运行程序等。这里有一个很特别的功能,可以启动性能数据日志,这样可以实现与计数器日志的联动操作。
★系统性能监视器和警报在后台运行时,也会占用一定系统资源,我们可以使用一些技巧来尽量减少它的资源占用。例如设置较长的数据采样间隔、删除不需要监视的计数器,另外要注意日志文件不要保存到正在监视的磁盘中。
总的来说,系统性能管理工具非常强大,它常被系统维护专家用来发现和解决各种与系统相关的问题,特别是服务器方面,前面我们只是介绍了一些它的皮毛,如果你对它感兴趣,请参考相关专业图书。[XT01]
相关标签: