科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航



ZDNet>网络频道>ZD评测>监控DHCP服务器性能数据

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

当你考虑优化一台服务器的性能时,你大概不会立刻想到DHCP服务器。性能优化一般都会着眼于诸如数据库服务器,文件服务器,以及邮件服务器等这些设备上。

来源: 2007年01月12日

关键字:DHCP服务器 Windows Server 2003 网络管理

当你考虑优化一台服务器的性能时,你大概不会立刻想到DHCP服务器。性能优化一般都会着眼于诸如数据库服务器,文件服务器,以及邮件服务器等这些设备上。而DHCP服务器只 是在暗中很开心的工作着。尽管对它的优化可能看上去不如对其他服务器优化来得那么重要,但是再怎么说,你起码也应该了解一下DHCP服务器的优化应该怎么进行。毕竟,一台 DHCP的某个性能问题可能会导致一批电脑无法在启动时获得IP地址。虽然这种情况在现实生活中出现只是暂时性的,但是它还是会影响你用户的生产,并导致技术服务部门会多接 不少额外的求助电话。

许多对DHCP服务器的性能优化技术,看起来和你用于优化文件服务器的技术非常的相似。不过,毕竟还是有一些特别为DHCP服务器所设计的性能监控计数器。通过检查一个由特定 DHCP计数器及普通性能计数器的组合,你可以获得如何对DHCP服务器进行优化的好想法。

对性能监控的简介
你可能知道,也可能不知道,用于监控服务器性能的是“ 性能监控器(Performance Monitor)”。对于那些还不熟悉如何使用性能监控的人来说,好消息是我会在这里给他们开 一个如何使用性能监控器的速成班。如果你已经对此很熟悉,那么我建议你直接跳过本部分到下一节。

通过在你服务器上的“系统管理工具(Administrative Tools)”菜单中选择“性能(Performance)”命令,即可进入性能监控器。你会看到一个类似图A所示的屏幕。

图A:默认的性能监控器屏幕

正如你在图中所看到的,性能监控器的主要功能是一个图形。图中不同颜色的线一一对应着屏幕底部所列出的计数器。举例来说,在图中,蓝色图形就对应着“页/秒”计数器。一 个计数器就是一个简单的机制,监控某些系统性能的特定方面。

性能监视器所包涵的可监控计数器,其数目没有一千也有八百。要更容易的定位某个特定计数器,可以通过依照性能对象对计数器进行分组的办法。一个性能对象其实也就只不过 是微软语音的一个类别而已。比如,和内存有关的计数器就可以在“内存性能对象”中找到。

现在你了解了对性能监控的基本术语,下面就该准备使用性能监控器了。你将需要在下面的行动中,从屏幕上移除默认的计数器,并致力于让感兴趣的计数器阅读过程变得更加简 单。另外,监控计数器的过程本身也会消耗一些系统资源。因此你同时监控的计数器越多,监控过程本身所消耗的资源也就越多,你所得到的结果也就越可能产生偏差。所以最好 一次只监控一个计数器,除非你需要同时参考不同计数器的数值。

要移除一个计数器,只需简单的在屏幕底部选中该计数器,然后点击那个位于控制台顶部,看上去像大写X的图标即可。

将默认计数器移除完毕后,你可以自行添加计数器到性能监控器之中,方法就是点击那个看起来像“+”(加号)的图标。这么做了以后,你就能看到如图B所示的计数器添加对话 框。

图B:添加计数器对话框让你可以添加性能计数器到图形中

要添加一个计数器,简单的从性能对象下拉列表中选择对应性能对象即可。这么做了以后,计数器列表将显示和该性能对象有关的计数器。在某些情况下,你可能不得不同时选择 一个实例。当系统含有一个以上可被计数器规则化的事物时,将使用一个实例。比如说,如果一个系统有多个处理器,则每一个处理器相关的计数器都将有多个实例可用。

本文中,我将探讨许多你可以监控的计数器。在我做的时候,我会以“对象计数器”的格式列出计数器。比如,“% Processor Time(处理器时间)”计数器被包含在 “Processor performance(处理器性能)”对象之中。那么,对应的计数器就会被作为“Processor% Processor Time”这样列出来。

DHCP相关计数器
正如我早些时候提到的,有很多特定与DHCP相关的性能监控计数器。你不仅可以使用这些计数器来查看DHCP服务器工作得多么好,也可以用它来查看在给定的时间内DHCP服务器收 到的请求数到底是多少。

DHCPDISCOVER
当一个客户端刚上线时,它没有IP地址,也没有任何有关网络上DHCP服务器的资料。因此,它会发送一个DHCPDISCOVER包,以尝试发现网络上的DHCP服务器。

一个可以用于测量这种行为对服务器造成了多大负载的方法,就是看看服务器多久会收到一个DHCPDISCOVER数据包。你可以通过分析DHCP ServerDiscovers/sec计数器,从而做到 这一点。这个计数器将显示每秒有多少个DHCPDISCOVER数据包。

DHCPOFFER
当一个DHCP服务器收到了一个DHCPDISCOVER信息,它会用一个DHCPOFFER数据包进行回应。这是服务器用来通知客户端自身存在的方法。DHCPOFFER数据包中含有诸如服务器多长时 间会发放一个地址,客户端子网掩码是什么,广播地址是什么,以及子网路由器的列表(根据优先级排序),解析主机名时应使用的域名是什么,DNS服务器的IP地址是多少等等这 样的信息。

因为DHCPOFFER数据包是发出去回应DHCPDISCOVER数据包的,所以每秒所发出的DHCPOFFER数据包数量也就大概反应了每秒发送的DHCPDISCOVER数据包。因为服务器有个反应时间, 所以两者之间有些不一致是很正常的。你可以使用DHCP ServerOffers/sec来确定每秒到底发送了多少个DHCPOFFER数据包。如果DHCPOFFER数据包的数量比DHCPDISCOVER的数据包 数目小的话,那么服务器很可能存在着一个性能瓶颈问题需要解决。

DHCPREQUEST
当一个客户端初始化一个DHCPDISCOVER数据包时,该客户可能会收到多个DHCPOFFER信息(假设在网络上存在多台DHCP服务器)。基于这个原因,该客户必须对DHCP服务器做出选择 ,选定那个自己希望从中获取IP地址的DHCP服务器。客户端通过向所希望的DHCP服务器发送一个DHCPREQUEST数据包来做到这一点。

你可以通过监控DHCP ServerRequests/sec计数器,来监控一台DHCP服务器每秒收到多少DHCPREQUEST数据包。要注意,如果你的网络存在多台DHCP服务器(或一个内置了DHCP功能 的路由器,或是内置DHCP能力的无线AP),那么接收到的DHCPREQUEST数据包数目将无法符合接收到的DHCPDISCOVER数据包数目,也无法和发送的DHCPOFFER数据包数目相符。

DHCPACK
当一个DHCP服务器接收到一个DHCPREQUEST数据包,服务器会用一个DHCPACK数据包作为回答。这是一个服务器发往客户端的确认数据包,以确定该客户端可以租借先前所提供的IP 地址。

你可以通过监控DHCP ServerAcks/sec计数器,来监控每秒发送的DHCPACK数据包数目。

DHCPNACK
可能一开始看上去DHCPACK数据包每秒发送的数量应当可以大概反应入站的DHCPREQUEST数据包数目。理想状态下,应该是这样,不过通常并不总会这样。

如果一个客户端先前已经从一个DHCP服务器租借了一个IP地址,则该客户端所发送的DHCPREQUEST数据包将包含一个复用先前IP地址的请求。问题是,在该客户离线的时间段内,该 IP可能已经被发放给了其他人。

如果一台DHCP服务器收到了一个DHCPREQUEST数据包,其所要求的IP地址已经不再可用,则服务器会返回一个DHCPNACK数据包,这样服务器就通知该客户端该请求被拒绝了。你可以 通过监控DHCP ServerNacks/sec计数器,来监控每秒发送的DHCPNACK数据包数目。

接受到的数据包
你可能已经注意到,我至今为止所提到的计数器里,没有一个可以给你DHCP服务器实际接受的入站数据包精确数值。如果你试图量度DHCP服务器上发生的整体请求情况,那么我推 荐你检查一下“DHCP ServerPackets Received/sec”计数器。这个计数器能够显示每秒入站数据包的总计数目。

活动查询长度
如果你正试图估量你的DHCP服务器对请求的同步反应情况如何,那么有一个很好的计数器可用于监控,这就是“DHCP ServerActive Queue Length ”计数器。

基本的想法是,当基于Windows的DHCP服务器接受到请求时,那些请求并不是立刻进行处理的,而是会被放入一个处理队列中等待处理。一般情况下,该队列中应当最多不超过几件 事务。但是,如果服务器上常常有沉重的负荷,其对请求将无法保持同步反应,队列就会变得越来越长。通过观察活动队列的长度,你就可以估量出服务器处理请求的效率到底如 何。

失效的数据包
和活动查询有关的一个计数器是“DHCP ServerPackets Expired/sec”计数器。如果一个数据包在活动队列中停留超过30秒,该数据包将被认为是失效,并自动报废。如果报废数 据包的数量很高,通常意味着服务器存在严重的性能问题。

冲突检测
另一个可以监控的队列是“冲突检查队列(conflict check queue)”。我确信你了解,在网络上每台主机的IP地址都是独一无二的。因为IP地址冲突将导致问题,基于Windows的 DHCP服务器在释放一个IP地址之前,都有能力预先测试其是否在网络上已经存在。基本上,这意味着对打算分发的IP地址进行Ping操作,从而确认没有其他人已经使用了该IP地址 。

当启用了冲突检测后,打算分发的地址会被先放入一个队列。然后它们会被进行检测,以确保不会产生冲突。正如活动查询队列,冲突检查队列的长度在任何时候都应该不超过个 位数。过长的队列长度意味着性能问题,或者意味着服务器对冲突检测的设置过高。你可以通过查看“DHCP ServerConflict Check Queue Length”计数器,来检查队列长度。

拒绝
不能仅仅因为一个客户端申请了一个IP地址,而DHCP服务器也返回了一个DHCPACK消息,就认定该客户端接受了这个IP地址。如果客户端发现在网络上的另一台主机已经使用了该地 址,它将返回一个DHCPDECLINE(DHCP拒绝)消息给服务器,表明自己不接受该地址。

通常情况下,DHCP拒绝不应当发生。DHCPDECLINE信息的出现几乎总是意味着网络配置出现了问题。当这发生时,你应当做的第一件事情就是启用冲突检测。你也可以通过关注 “DHCP ServerDeclines/sec”计数器,来测试DHCPDECLINE信息是否出现。

DHCP释放
另一个你可以监控的计数器是“DHCP ServerReleases/sec”计数器。该计数器显示了每秒DHCP分发被客户释放的IP地址的次数。通常情况下,仅当客户端被配置为关机时自动释 放所租借的地址,或客户端通过使用IPCONFIG /RELEASE命令人为的对IP地址进行释放时,才会发生IP地址的释放。因此,这大概不是量度服务器性能的好方法,不过我也就只是提 一提而已。

丢弃的重复数据
一个更好的监控服务器性能的计数器,是“DHCP ServerDuplicates Dropped/sec”计数器。其想法就是有时重复的数据包会被发到一台DHCP服务器上,服务器会依次丢弃重复部 分。重复数据包可能由多台DHCP中继代理向服务器转发同一数据包而产生。不管怎样,丢弃的重复数据包表明了客户端的超时过于迅速,或者表明DHCP服务器的反应不够迅速。

DHCP通知
一个你可能有,也可能没有兴趣的计数器,它就是“DHCP ServerInforms/sec”计数器。这个计数器代表了每秒服务器接受到DHCPINFORM信息的次数。这些信息在当DHCP服务器为 企业root查询活动目录时,或在服务器根据客户行为执行动态更新时,才会出现。

毫秒每数据包
“DHCP ServerMilliseconds per packet”计数器代表了DHCP处理接受到的每个数据包所需要的毫秒数。不幸的是,我无法告诉你一个该计数器可接受的数值到底应该是多少,因 为该数值依据服务器的硬件和工作量不同,服务器和服务器之间会大不一样。我能告诉你的只有一条,就是通过对这个计数器进行监控以确定你的DHCP服务器是否工作正常,是一 个很好的想法。如果该数值突然升高,有很大的几率表明服务器的负载增加了,也就表明某些系统部件成为了一个瓶颈。

盘点计数器
正如你能看到的,有很多DHCP的特定性能计数器让你可以利用,以确认你的DHCP服务器处理当前的工作量是否状态良好。我推荐使用这些数据包来确定是否存在有性能问题。如果 你的确发现了性能问题,那么你最好的做法就是使用更多的传统性能监控技术(比如对CPU,硬盘以及内存的监控)来确定到底问题出在何处。

(责任编辑:陈毅东

查看本文的国际来源

推广二维码
邮件订阅

如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

重磅专题