性能诊断
在老版本Windows中,我们用来监视系统性能最常用的工具可能就是Windows任务管理器了。这个工具功能上算是够用,不过默认的设置并不好,只能显示有限的系统性能参数,为了能够满足更高的要求,必须对其进行一些调整。在Windows Vista中,虽然任务管理器功能没什么加强,不过我们已经有更专业的工具来监视系统性能了,这就是性能控制台。
要使用该工具,我们只需要打开“开始”菜单,在搜索框(默认情况下Vista中并不显示“运行”对话框,我们可以使用该框代替)中输入“perfmon.exe”并回车,即可看到类似图1的界面。这里最显眼的就是四个实时更新的图表,分别代表了CPU、物理硬盘、网络和内存分页情况的使用状态。同时窗口下方还列出了一些条状按钮,点击后就可以看到上述四个性能参数的详细内容。下文中我们会详细介绍这些内容。
图1
CPU
该栏目下列出了系统中当前运行的进程信息(图2),和传统的任务管理器类似,不过这里列出的项目只能查看,不能直接结束进程或者调整进程的优先级,这些工作仍还需要通过Windows任务管理器进行。
该栏目下列出了5项不同的内容,分别具有如下含义:
● Image(进程名称):使用了CPU资源的程序进程名称。
● PID:应用程序实例的进程ID。小虫网络技术http://www.chinaccna.com
● Threads(线程):该程序实例当前运行的线程数量。
● CPU:该程序实例当前占用的CPU时钟。
● Average CPU(平均CPU占用):该程序实例占用CPU总时钟的百分率。
从这个栏目中我们主要可以看到每个程序对CPU资源的占用。例如,如果你总是感到系统运行速度太慢,那么就可以查看这里的内容,看是否有程序占用了过多的CPU资源,并对其采取相应的操作。
图2
磁盘
该栏目下列出了系统中每个进程对硬盘的读写情况(图3),这里一共显示了6项不同的内容,分别具有如下含义:
● Image(进程名称):读写硬盘的程序进程名称。
● PID:读写程序的进程ID。
● File(文件):正在被程序的进程读写的文件名称。
● Read(读取):以“字节/分钟”为单位显示文件正在被进程读取的速度。
● Write(写入):以“字节/分钟”为单位显示文件正在被进程写入的速度。
● Total(总数):以“字节/分钟”为单位显示文件正在被进程读写的总速度。
如果你觉得自己没做什么,但是硬盘的灯一直在闪,那么就可以利用该栏目看看到底是哪个进程在频繁读写硬盘,并根据不同的进程采取不同操作。
图3
网络
该栏目下列出了系统中每个进程对网络的访问情况(图4),这里一共显示了6项不同的内容,分别具有如下含义:
● Image(进程名称):使用网络资源的程序进程名称。
● PID:使用网络资源的程序进程ID。
● Address(地址):正在和本地计算机交换信息的网络地址。如果目标计算机和本机位于局域网的同一子网中,这里将显示对方的计算机名称;否则将显示对方计算机的IP地址或者FQDN(Fully Qualified Domain Name,完全合格的域名)。
● Send(发送):以“千比特/秒”为单位显示应用程序正在从本地计算机发出数据的速度。
● Receive(接收):以“千比特/秒”为单位显示应用程序正在从本地计算机接收数据的速度。
● Total(总数):以“千比特/秒”为单位显示当前被应用程序使用的网络带宽。
如果你觉得网络活动异常,例如接收数据正常,但是有大量发出数据(很可能中了蠕虫病毒了),那么就可以使用该栏目查看每个程序的网络使用情况,并从中找到出有问题的进程,着手解决。
图4
内存
该栏目下列出了系统中每个进程的内存使用情况(图5),主要包括每秒钟之内发生的硬缺页(hard fault)情况和物理内存的使用百分率。这里一共显示了4项不同的内容,分别具有如下含义:
● Image(进程名称):使用内存资源的程序进程名称。
● PID:使用内存资源的程序进程ID。
● Hard Faults(硬缺页):该应用程序当前导致的硬缺页数量。所谓硬缺页,是指被程序使用的物理内存内容被分页到硬盘上的分页文件中,导致物理内存中“缺少”该内容的现象。
● Working Set(工作集):被应用程序使用的页面文件当前位于物理内存中的数量(也可以理解为物理内存的使用量)。
如果通过查看这里你发现某个程序的硬缺页数值很高,那就需要注意了,很可能是程序本身有Bug,导致系统频繁将页面文件写入硬盘,或者从硬盘中读入内存;但如果几乎每个进程都有较高的硬缺页数值,则可能是因为你的物理内存数量太少,需要添加内存。
图5
性能监视
上文中已经介绍了一些常用的系统性能参数,不过如果你需要对某一项目进行更细致的监视,或者你需要了解更多上文中没有列出的参数,这里就可以使用Vista中的性能监视功能了。
图6
在图1所示的性能控制台左侧树形图列表中点击“Performance Monitor(性能监视器)”节点,打开性能监视器,你将看到类似图6的内容。这里已经默认显示了处理器的占用情况,我们可以点击工具栏上的加号按钮向其中添加计数器。需要注意的是,这里不仅能监控本机的性能参数,还可以监控局域网中的其他计算机,而且可供监视的参数种类也非常多(图7)。如果你对某个对象的含义不了解,也可以点击窗口下方的“Show description(显示描述)”选项,查看每个对象的详细含义。其实这个工具在老版本Windows中就有,不过Vista中对其界面进行了一些简单改进,因此这里不再多说。
图7
数据的收集和查看
对系统性能的监视可以算是一项长期的工作,为了对系统的某些性能有一个彻底的了解,我们也许需要长时间进行监视,以便能够得到正常使用计算机情况下系统性能的改变。但这也带来了一个问题:我们不能一直开着监视器,并查看其中的内容,我们还有其他更重要的工作要做。这时候我们就可以使用Vista提供的性能数据集功能,让系统在后台自动监视性能数据,而我们可以定期查看收集到的数据,并根据数据对系统进行适当的调整。
这整个过程包括设置性能数据集、收集数据以及分析数据三部分,我们会通过一个具体的实例向你介绍。假设我们需要监控长时间内系统对内存的使用情况,那么可以这样做:
设置性能数据集
首先在图1所示的性能控制台左侧树形图列表中点击“Data Collector Sets(数据收集)”节点,接着用鼠标右键点击“User Defined(用户自定义)”,从“New(新建)”菜单中选择“Data Collector Set(数据收集)”,你将能看到一个向导形式的对话框(图8)。
图8
在“Name(名称)”框中为该数据集输入一个名字,例如“内存使用”,接着点击“Create manually(手工创建)”,并点击下一步。 接下来有两个选项,我们可以分别创建data logs(数据日志)或者Performance Counter Alert(性能计数器警告)。数据日志的作用就是真实记录所需信息,供我们日后查看;而性能计数器警告则是为了在系统遇到某些性能问题(例如系统盘可用硬盘空间小于1GB)的时候通过某种形式为我们发出警告,提醒我们注意。因此这里我们选择“Create data logs(创建数据日志)”,并选择“Performance counter(性能计数器)”,点击下一步。 小虫网络技术http://www.chinaccna.com
随后需要点击“Add(添加)”按钮加入性能计数器,因为操作方法和上文中添加计数器类似,这里就不再多说。同时我们还需要选择收集数据的时间间隔,例如,如果我们要监控未来一个月内物理内存的使用情况,那么比较好的办法是设置以一分钟为单位进行收集。你需要根据监视的时间或者监视对象的属性设置适当的时间间隔,如果设置不当,可能会产生大量没用的性能日志记录,这些记录不仅占用大量硬盘空间,还会给日后的数据分析和查看增加困难。
接着还有一些选项,可以供我们设置保存性能日志的位置,以及指定运行该计数器的用户凭据。全部设置好之后可以点击“Finish”完成该向导。随后可以看到类似图9的界面,在窗口左侧的树形图中我们新建的项目图标上有一个绿色的三角,表示该项目已经成功运行,并在后台监视系统性能数据
图9
查看分析数据日志
当监视进行了一段时间之后,我们就可以通过“Performance Monitor(性能监视器)”节点查看记录的数据了。在图6所示的界面上点击显示为一个圆柱体图标的“View Log Data(查看日志数据)”按钮,打开图10所示的“System Monitor Properties(系统监视器属性)”对话框,并打开“Source(来源)”选项卡。首先在“Data source(数据源)”选项下选择“Log files(日志文件)”,接着在随后出现的对话框中找到之前创建的性能数据集收集起来的数据文件,并点击OK按钮,监控的数据就会以静态的形式显示在性能监视器主窗口中。
图10
系统经过长时间的使用,随着安装和卸载的软硬件数量的增多,稳定性难免会有问题。我们都知道,系统自身的稳定性现在已经不是大问题,影响稳定性最主要的因素就在于硬件设备的驱动程序,以及大量第三方应用程序。那么能否让系统将相关的信息记录下来,供我们需要的时候进行分析?这里就要用到Vista中新增的一个功能:Reliability Monitor(可用性监视器)。 需要注意的是,在使用该功能之前,系统累计的运行时间必须超过24小时,而且为了获得最准确的数据,必须让该功能收集至少28天的数据。该功能最长可以保留一年时间内的可用性记录。
当我们需要分析系统可用性的时候,可以在图1所示的性能控制台中点击“Reliability Monitor”节点,打开类似图11所示的可用性监视器。该监视器的右上角显示了一个日历,只有监视器记录下来数据的日期才会显示在该日历上,而窗口中央的图表则显示了记录的数据信息。例如3月1日的记录上有三个黑点,这表示该日共有三种类型的错误被记录下来。
图11
可用性监视器一共可以记录5种不同类型的事件,分别如下:
● Software (Un)Installs(软件安装/卸载):对操作系统的安装和卸载、Windows更新、硬件驱动的安装,以及应用程序的安装和卸载进行记录。
● Software(软件):记录被安装或卸载的操作系统、应用程序、Windows更新以及驱动程序的名称。
● Version(版本):记录被安装或卸载的操作系统、应用程序或者驱动程序的版本信息(这部分记录不包含Windows的更新信息)。
● Activity(活动类型):指出该记录属于安装或是卸载。
● Activity Status(活动状态):指出该活动最终成功或者失败。
● Date(日期):该活动的发生日期。
图12
当我们点击窗口下方的事件类别后,该类别下记录的信息就会显示出来(图12),从中我们就可以知道系统在什么时间发生了什么事情,并根据不同的事情采取相应的措施解决。