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