51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2634|回复: 0
打印 上一主题 下一主题

[原创] 分享一下windows性能计数器

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-9-26 12:08:30 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
内存是Windows NT系统的一个重要资源。本文结合Windows NT Server 4.0介绍几个与内存相关的问题,帮助大家更好地使用和优化内存。

一、 Windows NT的内存分配特点

---- 1.Windows NT的虚拟内存及其实现过程
---- Windows NT Server 4.0支持4GB(2GB+2GB)的虚拟内存空间。其中,高端的2GB供Windows NT操作系统使用,低端的2GB提供给应用软件使用。Windows NT利用虚拟内存管理器(VMM)部件,实现将硬盘空间模拟成虚拟内存使用。虚拟内存的实现需要依靠Windows NT中的一个分页文件(pagefile.sys)完成,它以物理内存中的4MB空间为中介,通过虚拟地址与物理地址的映射,将硬盘空间转换成内存来使用。

---- 从虚拟内存的实现过程可以看出3点:其一,虚拟内存是系统物理内存资源不足时的补充; 其二,虚拟内存由硬盘空间转换而成,因此虚拟内存的性能比不上物理内存;其三,分页文件存放在硬盘上,硬盘性能的好坏将直接影响到内存的性能。

---- 另外,从实际的应用发现,Windows NT Server 4.0所提供的2GB+2GB的虚拟内存分配并不合理,操作系统一般不需要2GB的虚拟内存空间,而在大中型网络中2GB的虚拟内存有时又无法满足应用软件的运行需要。所以,微软后来又提出了1GB+3GB的分配方案,操作系统占用1GB的虚拟内存空间,而应用软件占用3GB。如果您想让Windows NT Server 4.0支持这种新的分配方案,可安装Windows NT Service Pack3或更高版本的补丁程序。新推出的Windows 2000已经开始直接支持这种方案。

---- 2.Windows NT的内存使用特点
---- 并不是对于所有操作系统,内存越大机器运行速度就越快。其实,Windows NT不同于DOS或Windows 95/98,对于后者,物理内存的增加不会明显改善系统性能。Windows NT可充分使用所提供的一切物理内存。从实际应用中发现,Windows 95/98对24MB以下的内存利用率很高,当内存大于24MB时,利用率就会降低。而Windows NT则不同,它对内存的利用率几乎呈直线上升。

---- 3.Windows NT的两种内存调入方式
---- 任何应用程序在执行时都要加载到内存。但有许多应用程序的大小超过了物理内存的实际空间,当这些应用程序在运行时,物理内存中无法容纳得下,这时就用到虚拟内存的功能。其中一部分调入物理内存,另一部分以虚拟内存的形式驻留在硬盘上,存放在分页文件中。当系统所需的部分信息不在指定的物理内存时,操作系统必须通过某种形式将它调入,这一过程称之为调页。Windows NT中的调页分为2种类型: 一种是硬缺页(Hard-page fault);另一种是软缺页(Soft-page fault)。所谓硬缺页,是指操作系统必须从硬盘上(事实上是从硬盘的pagefile.sys文件中)读取数据;而软缺页,则是直接从物理内存中的其他位置调取数据。

---- 缺页是影响系统性能的主要因素之一,其中硬缺页比软缺页更为严重。如果系统中存在过多的调页操作(尤其是硬缺页操作),内存将成为整个系统的瓶颈。内存性能优化的目的就是要让操作系统尽可能少地进行调页操作。

二、 内存活动的监视和分析

---- 内存的活动情况可通过Windows NT的性能监视器进行观察。

---- 1.常用的内存性能计数器
---- (1)缺页数/秒(Page Faults/sec):该计数器反映了有多少个被请求的信息不在物理内存中对应的位置上。当该计数器的数值一直居高不下时,表示内存的调页出了问题。这里,我们最为关心的是硬缺页,因为它需要对硬盘进行读写操作,而硬盘的速度要比物理内存明显慢得多。

---- (2)调页数/秒(Pages/sec):该计数器显示的是调入页数/秒(Pages Input/sec)和调出页数/秒(Pages Output/sec)的总和。其中,调入页数/秒又是一个单独的计数器,它主要反映了物理内存的短缺情况。如果调入页数/秒与缺页数/秒的比值大于40%时,一般要通过增加内存来解决问题;同样,调出页数/秒也是一个独立的计数器,它虽然显示的是每秒从物理内存中调出的信息量,但却间接地反映了服务器的繁忙程度。因为当许多用户同时调用服务器上的不同文件时,服务器上原有的内存空间要进行重新分配,将内存中原有的部分信息调出,送到硬盘的分页文件中,同时将被请求的应用程序调入内存。根据相关资料显示,如果调页数/秒的值超过12,并且持续的时间达到分钟级,则表明系统存在内存问题。

---- (3)读页数/秒(Page Reads/sec):该计数器直接反映了系统由于硬缺页而产生的读取硬盘的频率,它是我们用来测试是否存在内存短缺的最好途径。根据相关资料显示,如果该计数器的值持续显示在5以上,说明内存出现了问题。

---- (4)写页数/秒(Page Writes/sec):该计数器与读页数/秒计数器相类似,它反映了系统为了清除内存中无用的信息而向硬盘执行的写操作频率。当该计数器的值不断增长时,表明系统中各应用程序对内存资源的竞争非常激烈。

---- (5)可用内存(Available Memory):该计数器显示了物理内存的剩余量。我们在前文已经提到过,Windows NT要保留4MB的物理内存空间用于与虚拟内存的映射,如果可用内存计数器的值低于4MB,并且长时间达到分钟级时,表明存在内存不足问题。

---- (6)提交字节数(Committed Bytes):该计数器表示提交给Windows NT的所有服务和进程专用的内存总量。如果该计数器的数值长时间地接近系统的物理内存的大小,则表明系统存在不明原因所引发的内存短缺现象。若该问题不能及时得到解决,将可能发生系统崩溃等严重后果。

---- 以上所介绍的计数器中,可通过性能监视器的内存(Memory)对象进行添加。还有其他的一些计数器,用户在需要时可参看相关的“计数器定义”说明。

---- 2.确定内存性能与磁盘间的关系
---- 我们已经知道,可能形成Windows NT网络瓶颈的部位主要包括CPU、内存、磁盘和网络接口等4部分。而在内存的性能分析中,硬盘性能对内存性能起着十分关键的作用。因此,当我们在使用性能监视器的内存计数器进行内存活动的监视和分析时,有时很难认定产生问题的根源是内存本身还是硬盘。这时,我们就必须综合使用多个计数器进行测试分析。

---- 首先,在性能监视器中分别添加Page Faults/sec、Pages Input/sec和Page Reads/sec等3个对象。随后开始监视。如果我们单独对待每个计数器,似乎很难说明什么问题,但当我们对其中的2个计数器的值进行对比分析时,就会得出结论。

---- 例如我们观察对比值(Pages Input/sec)/(Page Faults/sec)。当该值超过40%时,我们一般认为是内存本身有问题,需要对内存进行升级,建议采用速度更快的内存或增加内存的数量。而当该值小于40%(如30%左右),则系统存在问题一般是由硬盘产生的,需要更换更快速度的硬盘。

---- 接下来,我们再看另一个对比值:(Pages Input/sec)/(Page Reads/sec)。该结果表示每次读磁盘操作所获得的平均内存页数。我们希望该数值在3左右,如果其值明显大于3,说明可能存在硬盘故障,或者有多个程序在争用内存。为了得出准确的结论,建议先断开与服务器所连接的其他用户,只让一个用户与服务器保持通信,并且只调用服务器上的1~2个应用程序,接着进行观察。如果其比值还超过3,说明是硬盘故障。

---- 利用(Pages Input/sec)/(Page Reads/sec)的比值还可以鉴定某些应用软件效率的高低。一些应用软件,它的功能似乎比较简单,但是在网络中运行时却要占用非常大的内存空间,当其他应用程序调入时也不“让位”。这时我们就可以分别监视Pages Input/sec和Page Reads/sec两个计数器,并进行比较,如果其比值大于3,则很有可能是该应用程序的效率太低,不适合于网络环境下使用。

三、 内存的优化

---- 掌握了以上介绍的对内存的观察和分析方法,我们就可以有目的地进行内存的优化,让系统工作得更安全、稳定。

---- 1.合理使用内存
---- 虽然增加内存可以解决一些问题,但这并不是解决问题的全部。我们首先要对系统的内存需求有一个清楚的了解,仔细查查有哪些程序在占用内存,并将一些对本系统无用的功能从中删除。例如,我们可以删除不必要的协议和服务,以便让出更大的内存供应用程序使用,同时也为网络和处理器的工作减少了许多负担。另外,还应合理地分配各类应用服务,有些人喜欢将诸如NetWare网关服务、RAS、DHCP、WINS、DNS等多种服务集中在一台服务器上,以方便管理。事实上这种做法是很不科学的,并且非常容易产生服务器内存的不足。为此,建议将一些服务移植到另外一台服务器上,对内存的占用进行分流。

---- 2.确定需要增加多少内存
---- 当我们通过监视和分析,发现系统存在内存不足时,就需要增加内存。那么,到底还需增加多大的内存容量呢?一般可通过以下的方法来确定:首先,查看服务器上分页文件(pagefile.sys)的大小,如128MB;接下来打开性能监视器,选择报表方式,添加Paging File(分页文件)对象下的%Usage(使用率)计数器,并测试其值,如10.367;最后计算%Usage×分页文件的大小,即128×10.367%≈13MB,所以还需要增加13MB的物理内存。

---- 3.内存的升级
---- 在升级内存前还需要考虑以下几点:第一,在升级前要有预见性,要视系统的发展情况,留出一定的余量; 第二,当在一台计算机中安装有2种或2种以上不同速度的内存条时,实际速度以最低的一条为准。因此,建议大家在内存升级时,在主板能够支持的范围内尽量用更快速度的内存替换掉原有的内存,而不要使不同速度的内存共存于一台机器中;第三,在升级内存的同时,也要适当地考虑硬盘的升级。Windows NT中的内存与硬盘之间的联系非常紧密,尤其是虚拟内存的实现要靠位于硬盘上的分页文件(pagefile.sys)来完成,硬盘性能直接影响着内存的工作。所以,在升级内存时,硬盘的性能不能不考虑。

---- 本文中的分析数据全部来自于Windows NT的性能监视器,当我们在对计数器的数值进行监视时,一定要注意观察的持续性。因为每个系统的资源要求都可能存在波峰和波谷的变化,只有那些持续出现的数值才是对我们的分析真正有价值的
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-27 16:45 , Processed in 0.075417 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表