APP下载

WINDOWS服务器性能监控的设计与实现

2010-07-25蒋漪涟

微型电脑应用 2010年10期
关键词:浏览器管理人员对象

蒋漪涟

0 引言

当前,企业信息化规模越来越大,水平不断提高,如何维护并有效管理这些IT资源,已成为企业信息化过程中面临的严峻问题和关注的焦点。在对企业IT资源管理中,服务器是核心设备,对它的管理至关重要。Windows服务器在企业中应用十分广泛,对其性能进行管理非常必要。

Windows服务器自身带有性能管理功能,但只能在本机上才能查看其运行情况。除此之外,目前知名的 Windows服务器性能监控系统有BMC公司的Patrol Administrator for Windows NT,HP公司的OpenView,CA公司的Unicenter,Microsoft公司的WMI[3] ,神州泰岳的Ultr@NMS。相比较而言,国外产品功能强大,但价格昂贵,操作界面不符合国情;国内产品技术落后,可移植性差。

本系统是IT资源管理系统中的一个子系统,其设计目标是对基于Windows操作系统服务器的性能进行实时监控,通过互联网观察到服务器的实时和历史运行状况,分析其性能瓶颈。系统采用免费数据库,管理系统并以图形方式将纷繁的性能数据,通过浏览器呈现给管理人员,系统的应用对服务器的性能优化、服务器的健壮运行以及企业网络建设合理规划均具有实用价值。

1 解决方案

1.1 系统设计思路

系统采用浏览器-web服务器-被监控服务器3层结构,主要的业务逻辑在 web服务器上实现。系统的工作流程如下:

(1)管理人员通过浏览器,指定要监控的服务器。

(2)系统自动将资产信息采集程序和性能数据采集程序,通过软件分发工具分发到要监控的服务器上,并进行安装。

(3)系统启动被监控服务器的资产信息采集程序,并将所采集的资产信息以XML文件格式保存,并返回给web服务器。

(4)根据资产信息 XML文件,动态生成性能监控页面,并下载到浏览器。管理人员选择需监控的性能指标,形成监控性能XML文件,并将其发送到被监控服务器。

(5)性能数据采集程序根据监控性能 XML文件采集相应的性能数据,然后将性能数据进行解析,添加到数据库中。

(6)图形显示程序将性能数据呈现给管理人员。

1.2 开发工具及平台

Web服务器端的开发工具及平台:

开发工具:JBuilder9,mysql4.0.18

开发平台:Windows2000 server+SP4

被监控服务器的配置环境:Windows2000 server,JDK1.4

1.3 系统功能

系统的功能模块图如图1所示。

图1 性能监控系统模块图

Web服务器端的功能模块如下:

(1)建立连接。完成建立浏览器-web服务器-被监控服务器三者连接功能。

(2)图形显示。将采集的性能数据以图形方式呈现给管理人员,系统提供饼图、直方图、折线图三种呈现方式。

(3)数据报警。当采集的性能数据超出阀值范围时,系统向管理人员发出提示报警。

(4)性能优化。管理人员可以根据历史性能数据,设定报警阀值。同时,可以查阅服务器的历史运行数据曲线,分析系统的性能瓶颈。

运行于被监控服务器端的功能模块如下:

(1)资产采集。检测被监控服务器的操作系统版本、处理器个数、硬盘分区、逻辑磁盘分区及网卡型号等系统信息,检测结果以XML文件返回web服务器端。

(2)数据采集。采集服务器的处理器、内存、物理磁盘、逻辑磁盘、网络设备、服务、IIS、缓存、系统及页面文件等性能数据。对于以上的性能指标,可以设置不同的采样周期。

(3)数据入库。循环采集各种性能数据,将数据存储于数据库中;当管理人员关注某一性能指标,发出实时采集数据请求时,所采集的数据存储于临时数据库中,供即时显示。

2 系统的设计与实现

2.1 系统界面

系统的图形显示界面如图 2所示,数据呈现可以以饼图、直方图和折线图3种方式进行切换,并且能显示数据采样的最大值、最小值和平均值,同时亦能获得每次采样的精确值。

图2 CPU的设备中断数的图形呈现界面

2.2 所采用的主要技术

本系统采用以下关键技术:JNI,PDH和多线程,RMI,APPLET。下面予以分别介绍。

2.2.1 JNI技术

不同服务器的软硬件资源配置各异,需要在对其性能监控之前,获得系统的资产信息。

获得系统资产信息涉及到底层操作,采用 C语言实现具有一定优势。Java与C语言之间的接口采用JNI技术实现。所谓JNI技术是指JAVA提供的本地编程接口(JNI)[2],它定义了一个标准的命名和调用规则,从而允许JAVA虚拟机调用其他语言编写的本地方法,这样就扩展了 Java语言控制系统底层的能力。

获取被监控服务器的资产信息后,将其存为XML文件返回到服务器。例如获取CPU信息的XML文件为:

2.2.2 PDH与多线程技术

Windows服务器性能数据的采集综合运用了 PDH+JNI以及多线程技术,借助Windows操作系统提供的PDH接口,采用JNI技术,采集到操作系统的实时性能数据。

PDH是与Windows NT操作系统性能监视功能部件相配套的库[1] [5],它建立在标准的Windows NT性能监视部件之上。Windows NT操作系统提供的性能参数包括数量不定的对象类型、每个对象的实例和每个对象类型的计数器[4]。计数器用来测量各种类型的性能。例如,处理器对象包括设备中断数计数器,它用来测量处理器每秒钟遇到的设备中断数。在应用程序中可以通过PDH提供的接口得到相应的性能数据。

利用PDH采集数据,需要读取某些对象的实例,比如处理器对象。实例是进行这些对象数据采集所必须要传递的参数,它由 Windows操作系统以某种命名规则自己生成,即使在相同的软硬件环境下,不同版本的操作系统生成的实例也不尽相同。所以在进行数据采集时,需要读取进行本次数据采集所在服务器的实例。

2.2.3 RMI技术

采集后的性能数据需要进行解析,利用RMI+JDBC技术将性能数据存储到数据库中。RMI负责web服务器与被监控服务器进行通信。

RMI允许在不同的Java虚拟机之间进行对象间的通信[2],大大增强了Java开发分布式应用的能力,用RMI开发的应用系统可以部署在任何支持JRE的平台上。

RMI需要在服务端定义方法,生成桩(Stub)文件和骨架(Skeleton)文件,将其分别部署在客户端和服务端,客户端与服务端的通信是通过桩文件与骨架文件的通信来完成。

被监控服务器在系统中处于服务端,它定义了数据采集接口如下:

Web服务器在系统中处于客户端,通过调用接口定义的方法获得采集数据:

将所采集的性能数据解析,并按指定格式存储到数据库中,由于入库是每个采集类均有的操作,所以将其写成一个公共的InputLibrary类。每个采集类只需向其传送参数就能将数据入库。

2.2.4 Applet技术

Windows服务器的性能数据纷繁芜杂,将这些性能数据以图形的方式呈现将大大方便管理人员使用。系统采用Applet的方式呈现性能数据。Applet是一种特殊的Java程序,它通常通过支持Java的网页浏览器下载后执行。Applet非常适用于浏览器上动态图形的呈现[2]。

为了展现服务器性能变化趋势,性能数据采用以滑动窗口的方式展现给管理人员。系统只呈现10个采样周期内的采样数据,当采集超过10个采样数据时,按照先显示先移除的原则,移除最开始的采样数据,然后保留10个采样数据,刷新窗口,重新绘制性能趋势图。

图形呈现模块在 web服务器上运行。管理人员通过浏览器发出对某性能数据进行请求,Applet获得数据库中指定表中的数据,然后再利用Java 2D的绘图函数绘制图形,最终下载到浏览器呈现给管理人员。

2.3 部分编码

2.3.1 资产信息采集

在系统可以进行数据采集的性能指标中,处理器数目、磁盘分区、逻辑磁盘分区和网络设备型号等资产信息随被监控服务器而异,它们均通过操作系统的 API获得。例如读取CPU数量的C代码为:

2.3.2 数据采集

考虑到操作系统的支持和多线程的特点,系统采用一个性能对象对应一个线程的方式,一个采集线程运行结束,系统就能够采集到这个性能对象的一系列性能数据。

由于数据采集利用操作系统公共的接口,同时为减少代码和易于维护,我们设计了共享的动态连接库,每个采集类可以向其传递性能对象(obj)、计数器(countername)和实例(instance)三个参数而得到数据采集值。

共享的动态连接库的代码如下:

JNIEXPORT jstring JNICALL Java_Getvalue

性能数据采集模块根据监控性能XML文件进行采集,例如CPU数据采集的XML文件如下:

3 结语

所构建的系统采用3层结构,通过浏览器对远端服务器的性能进行实时监控,实现了图形显示和越限时发出报警消息的功能,使用方便、灵活,该系统适用于 Windows服务器性能的监控和优化,其中采用的技术可供开发类似系统时参考。

[1] Patrol for Microsoft Windows Servers Release Notes[EB/OL] . http://www.bmc.com 2000-12-7.

[2] Fred Douglis, Ian Fo ster.JAVA Tutorial[EB/OL] .http://java.sun.com 2003-6-12.

[3] 姜劲松,吴礼发,张萍.基于WMI的系统管理的设计与实现[J] .成都:计算机应用,2004.24(3):16-18.

[4] Windows 2000 Resource Kit [EB/OL] .http://java.microsoft.com2003-4-26.

[5] In-Depth Guidance for Securing Windows 2000 Server.Ian Fo ster, Carl Kesselman, JeffreyM. N ick,http://www.microsoft.com/windows2000/en/server/help/d efault.asp?url=/windows2000/en/server/help/windows_W MI_overview.htm?id=7[EB/OL] 2002-3-10.

猜你喜欢

浏览器管理人员对象
神秘来电
反浏览器指纹追踪
攻略对象的心思好难猜
基于熵的快速扫描法的FNEA初始对象的生成方法
环球浏览器
区间对象族的可镇定性分析
再见,那些年我们嘲笑过的IE浏览器
高校教学管理人员专业化探讨
5年前的选择决定今天
招投标管理人员应具备的七种能力