在工作中对服务器性能监视是非常必要的。可以通过监视掌握系统资源的工作负荷和有效响应,通过多次监视,把其典型工作负荷,满意的性能水平作为基线,用于判定服务器负荷升高、响应变差,为将来的升级、改造做准备,通过监视结果,测试配置改变或其他调试带来的影响,通过性能监视,诊断问题并确定用于优化的组件和过程,还可以用来分析性能数据,找出瓶颈。
而这些监视,都可设置相应的报警,更好的是,监视和报警都支持网络,你不用一直呆在机房,只要用网络中的一台电脑,就可完成对机房中多台服务器的监视与报警,比如,把你的笔记本接入网络,可对IDC机房所有服务器进行监视,并且设置一些报警阈值,如:可用内存(Available Bytes)少于5%、每秒请求页面的数量(Pages/sec,指请求读写磁盘上的虚拟内存)长时间超过5次、CPU使用(Processor Time)长时间超过85%、磁盘使用(Disk Time)长时间超过50%、(Current Disk Queue Length)当前磁盘读写请求队列长度始终超过2、网卡发送和接收的字节数长时间超过基线等。
【基线:在系统处理通常的工作负载并运行所有需要的服务时,考虑可以接受的系统性能级别即为其基线。基线性能是管理员根据工作环境决定的主观标准。比如:公司的文件服务器,使用的是磁盘陈列,其四块硬盘构成的RAID0读速率约为280MB/s,而使用的是单块千兆网上,读速率为125MB/s,显然这个服务器上的硬盘不会成为读的瓶颈,经过多次监视,公司8-10点对服务器的访问比较平稳,用户反映速度都不错,这段时间用到网卡带宽平均为80%,10点后因各用户的工作全部展开,对服务器的读请求也增多,网卡带宽长时间持续占用100%,用户反映响应变慢,这里80%的网卡带宽占用就可以作为基线。】
还有一个,内存泄漏也需要重视。做过IDC机房管理的兄弟都知道,虽然服务器很稳定,连续的工作个一年半载的不成问题,但有的服务器每过一段时间,要不手动重启一下,就会奇慢无比。之所以会这样,大部分原因就是因为内存泄漏。什么是内存泄漏呢?比如软件中的一个模块,运行时需要申请一块内存地址,但在这个模块结束时他并没有释放这块内存或部分没有释放,若这个软件要经常调用这个模块,这会导致内存被不断的消耗掉,当可用内存太少时,系统就会频繁请求读写页面文件(虚拟内存),CPU使用也将升高,这样致使整个系统性能大幅度下降,所以系统管理员不得不重启系统,使计算机性能恢复。
显然,对服务器监视并警报是很重要的。Windows Server 2003提供了系统监视器、性能日志和警报、任务管理器三个性能监视工具。一般我们只需要建立服务器四大子系统的监视和警报就行了。
我们最常使用的监视工具就要属“任务管理器”了,可以用他来监视(快捷键Ctrl+Shift+Esc):
1、运行程序的状态
2、计算机上运行的进程和程序
3、系统性能的动态观察
4、网络状态
5、工作时连接计算机的用户数字,并且允许管理员发送信息
这几个大家都非常熟悉,不用多介绍,但是他们只能提供几个常用的监视,功能并不丰富,即不能记录监视的数据,又不能设置某种情况下的报警,而使用管理工具中的“性能”工具就能解决这个问题。
性能工具中的监视和警报是依靠各种计数器来工作的,他提供了丰富的计数器为方法对系统性能进行监视和警报,下面介绍四大子系统常用的一些计数器:
一、内存计数器
Pages/sec:被请求页面的数量。长时间超过5,内存可能已成为系统瓶颈。
Available Bytes:可用物理内存的数量。不应低于物理内存容量的5%。
Committed Bytes:已分配给物理 RAM 用于存储或分配给页面文件的虚拟内存。
Pool Nonpaged Bytes:未分页池系统内存区域中的 RAM 数量。
Page Faults/sec:虚拟页面在内存中的未命中的次数。如果一直大于5,就说明某个应用程序分配了太多内存,服务器内存不足。
二、CPU计数器
% Processor Time:测量处理器繁忙的时间,当处理器的使用率持续高于85%时,处理器就成了系统的瓶颈。
System: Processor Queue Length:处理器请求队列中请求的数量,
Server Work Queues: Queue Length:选中的处理器的队列中请求的数量。 队列持续高于 2 说明有处理器拥塞
Interrupts/sec:处理器正在处理的来自应用程序或硬件的中断的数量,Windows Server 2003 每秒能处理上千条中断。
三、磁盘计数器
% Disk Time:指示所选磁盘驱动器忙于为读取或写入请求提供服务所用的时间的百分比。
Current Disk Queue Length:指示被挂起的磁盘 I/O 请求的数量。如果这个值始终高于 2,就表示产生了拥塞
Avg.Disk Bytes/Transfer:写入或读取操作时向磁盘传送或从磁盘传出字节的平均数。
Disk Bytes/sec:在读写操作中,从磁盘传出或传送到磁盘的字节速率。
四、网卡计数器
“任务管理器”:网络应用:本地网段正在使用的网络带宽的百分比。
Network Interface:Bytes Sent/sec:使用本网络适配器发送的字节数
Network Interface:Bytes Total/sec:使用本网络适配器发送和接收的字节数。
Server:Bytes Received/sec:把此计数器与网络适配器的总带宽相比较,确定网络连接是否产生瓶颈。
通过下面例子来掌握这些功能的使用,当前网络环境:(域名gicp.net,NetBIOS:gicp)
例1:在域控制器上,向系统监视器中添加一个网卡计数器:Network Interface:Bytes Sent/sec,用于监视域控制器所发送的信息数量。
1、打开“性能”工具(开始→管理工具→性能 或 在开始→运行中输入perfmon.msc)
2、在波形图上右击,选“添加计数器”。
3、在DC(域控制器)上为Network Interface选择Bytes Sent/sec 计数器,再选择Vmware网卡为当前实例,然后单击“添加”按钮。(可以通过输入网络内任意WIN2003服务器的UNC路径来完成对任意服务器的监视)
4、通过右击菜单中的属性命令,可修改当前监视窗口图形界面样式,也可以添加/删除计数器。
例2:在Glasgow上为域控制器DC建立记录器日志,记录上午9-11点四大子系统主要计数器日志,完成后日志另存为HTM文件,并进行查看。
1、以域管理员的身份在Glasgow上登陆,启动性能工具后,定位到“计数器日志”,右击选“新建日志设置”。
3、给新建日志取名并确定。
4、单击“添加”按钮,添加四大子系统常用计数器。
5、间隔15秒采样一次(若间隔1秒一次的话,会影响服务器性能),在“运行方式”中输入域管理员的账号和密码,以管理员的身份来运行这个监视日志。(或是任何有此权限的用户都行,若在域控制器上运行“计数器日志”是不需要处理运行方式的。)
6、设置日志文件类型为CSV(逗号分隔文本文件,可用Excel打开)。
【如果域中有Microsoft的SQL服务器,也可以把日志存在数据库中。】
7、在计划中设置启动时间为9点,2个小时后停止,最后按“确定”。
8、若要手动启动日志记录,可对其右击选“启动”。
启动后的图标是绿色。
9、将其另存为:Htm文件。
10、打开的监视日志,可用这些数据来确定四大子系统的性能基线。
例3:在DC上设置警报,当可用内存(Available MBytes)少于5%、CPU使用(Processor Time)长时间超过85%、磁盘使用(Disk Time)长时间超过50%、网卡发送和接收的字节数长时间超过80Mbps时,向Glasgow发出警报。
1、在DC上设置可用内存(Available MBytes)少于5%时,向Glasgow发出警报。
Glasgow在虚拟机上,分配的内存为384MB,5%大约为20MB。
发送信息到网络上的glasgow。
2、CPU使用(Processor Time)长时间超过85%,向Glasgow发出警报。
3、磁盘使用(Disk Time)长时间超过50%,向Glasgow发出警报。
4、网卡发送和接收的字节数长时间超过80Mbps时,向Glasgow发出警报。
5、警报需要Messenger(信使)服务的支持,首要要启动Glasgow上的Messenger服务。
在Glasgow上,以本地管理员身份运行服务(或域管理员)。
把Messenger服务启动类型设为自动,并启动这个服务。
来自DC上的警报,除了有一个弹出式对话框外,还伴随着“滴”的一声声音报警。
本文出自 “坚强的技术交流blog” 博客,转载请与作者联系!