遭遇性能瓶颈,系统被拖垮,这无疑是管理员不愿看到的状况。从Windows Vista开始,微软加强了对系统各项资源性能状况的监控,其主要的技术手段所谓的性能计数器。利用这些计数器,我们可以对系统实施有效的监控,进而发现并解决系统的性能瓶颈。本文将和大家谈谈,在Windows 7中对内存资源进行监控,以发现并解决性能瓶颈的相关技术细节。
Windows 7是个比较耗费内存的系统,微软建议最少要1GB的内存,虽然512MB的内存也可安装Windows 7,但那样的系统是根本不具有实用性。而且,在Windows 7中运行的程序也会使用大量的内存,这让不少小内存的老机用户雪上加霜。如果使用最低要求的内存量安装Windows 7,毫无疑问系统将达不到最佳的运行状态。但同时就算使用推荐数量的内存安装,系统的性能可能也无法达到最优。这是因为系统的内存需求取决于很多因素,包括选择安装的Windows 7组件、开启的特效,以及应用程序及计算机本身的配置等。
性能监视器
对于Windows系统来说,我们知道系统需要同时使用物理内存和虚拟内存。物理内存不再赘述,虚拟内存是指写入到磁盘上分页文件中的内存数量。分页文件读取和写入数据的速度取决于磁盘系统的性能,比访问物理内存要慢很多。因此,我们没人会愿意过频繁地使用分页文件。
在打算监视内存使用情况之前,首先需要检查计算机是否有足够的内存运行系统和应用软件,随后,还需要判断系统对内存的使用方式,并检查是否存在问题。我们应密切监视可用内存的数量,以及被使用的虚拟内存的数量。如果系统的可用内存数量非常少,则可能要添加内存条。一般来说,可用内存的数量不应该少于系统中安装的物理内存总数的5%。如果通过监控发现Windwos 7使用的虚拟内存数量比物理内存总数高很多,我们需要添加新的内存条以解决内存吃紧的状况。
另外,还需要了解系统对分页文件的使用方式。如果某个进程请求内存中的页面,但系统无法在被请求的位置找到,就表示发生了页面错误。如果被请求的页面位于内存中的其他位置,会导致软页面错误;如果被请求的页面必须从磁盘上的页面文件中重新获取,会导致硬页面错误。大部分处理器可以处理大量的软错误,硬错误则会导致一定的延迟。如果系统中有大量的硬页面错误,会需要增加内存消耗,当然会降低系统性能。
了解了以上有关Windows内存管理的相关知识后,我们来看看Windows 7中可用于检查内存瓶颈的计数器。在Windows 7中,与内存监控相关的计数器最常用的有14个,笔者选择其中3个比较关键计数器进行解析。
Memory\Available Bytes 该计数器记录计算机上可用于运行进程的物理内存总量的字节数。如果其可用内存数量少于5%,表示系统缺少内存,同时性能会降低。此时,系统会频繁地将内存分页到硬盘,以保证资源需求。如果可用内存的数量低于128MB,性能会更低。这种情况下,系统会持续将内存分页到硬盘,并尝试从运行的进程处“借”内存,以保证资源的需求。如果内存缺乏的问题非常严重,一般是内存泄露问题导致的。
Memory\Committed Bytes 该计数器记录已经被提交的虚拟内存的字节数。其数值代表已经被分页到磁盘上的内存,并且是使用中的。如果计算机使用的虚拟内存数比系统中安装的物理内存的总数多很多,这时解决系统瓶颈的办法是添加物理内存。
Memory\Commit Limit 该计数器显示可用的物理内存和虚拟内存数量。随着Committed Bytes数量的增长,分页文件可能会达到允许的最大值。如果将初始页面文件设置得太小,系统可能会反复扩展分页文件大小,这需要占用一定的系统资源。因此,建议大家最好根据实际需要设置初始页面大小,或者直接使用古代的页面文件大小。通常情况下,我们可将其设置为物理内存大小的两倍。