网络服务性能监测系统设计与实现
网络服务性能监测系统设计与实现
作者:陈 涛
来源:《现代电子技术》2010年第10期
摘 要:网络服务响应时间是评估网络服务性能最直观的一个参数。在此, 设计了网络服务性能监测系统结构, 介绍了各子系统功能, 利用Socket 连接方法实现了网络服务响应时间的测算, 使用Applet 访问JSP 组件获取了网络服务性能数据, 并展现出服务性能曲线。测试表明, 该系统能够很好地满足Web 客户端监测网络服务性能的需求。
关键词:网络服务; 响应时间; 性能监测; 性能曲线; Applet
中图分类号:TP311 文献标识码:A
文章编号:1004-373X(2010)10-0133-03
Design and Implementation of Network Service Performance Monitoring System
CHEN Tao
(Shangqiu Teachers College, Shangqiu 476000, China)
Abstract:The network service response time is the most intuitive parameter to assess the network service performance. The structure of a network service performance monitoring system was designed.
service response time
was realized with the socket connection technique. Method of communicating between Applet and JSP was used to obtain the network service performance data. The service performance curve is offured. The test results show that the system can meet the demands of monitoring network service performance on the Web-based client.
Keywords:network service; response time; performance monitoring; performance curve; Applet 0 引 言
网络管理的一个重要环节是对服务器主机上的各种网络服务进行性能监测, 可以采用网络服务响应时间作为性能监测指标[1]。利用Socket 连接技术可以实现网络服务响应时间的测算, 并把测算结果存储至数据库中。通过嵌入在JSP 页面中的Java Applet来实现网络服务性能曲线的绘制[2],既可以展现有关最近测算结果的实时性能曲线图, 也可以显示所查询时间范围内的历史曲线图, 为网络管理员发现网络服务异常提供了方便直观的途径。
1 网络服务性能监测系统设计
系统创建客户端Socket 连接至指定IP 的服务器主机及服务端口, 如果连接成功, 则将连接前后记录的系统时间差作为本次测算的网络服务响应时间[3-4];如果连接出现异常, 则在异常处理中以同样方式算出该“异常”响应时间。系统能同时监测多台主机的多个网络服务, 并将测算出的各网络服务响应时间存储至性能数据库中。为了便于观察不同时间点的网络服务响应时间, 系统既提供了动态变化的实时性能曲线, 也可以对指定日期的历史数据进行查询, 并显示性能曲线, 从而便于管理员全面分析网络服务质量, 为进一步采取措施排除网络服务异常及优化网络服务提供依据。系统从结构上可分为响应时间测算子系统、性能数据库以及Web 端子系统。系统结构如图1所示。
图1 网络服务性能监测系统结构图
1.1 响应时间测算子系统
通过建立监测站到网络服务的Socket 连接, 记录连接前后的系统时间, 并测算两者时间差, 即网络服务响应时间, 以此作为衡量网络服务性能的指标[3-4]。系统按照数据库中添加网络服务的顺序依次进行时间测算, 并把测算结果记录在数据库中。管理员根据网络实际情况设置不同的网络服务状态, 如正常、缓慢、停止等, 每种状态都对应预设的特定时间区间, 系统根据每次测算的结果, 动态地改变网络服务的当前状态, 并显示在页面中。另外, 系统还能够设置测算时间间隔, 可根据实际测算的网络服务数量进行适当的设置, 例如, 可设置为30 s,60 s等。
1.2 性能数据库
性能数据库主要用于存储响应时间测算子系统所得网络服务响应时间的数据, 以及记录网络服务的当前状态。数据库的参数表用来保存测算时间间隔等数据。如果相邻两次的测算时间间隔较短, 则系统将需要保存较多数据, 因此使用性能可靠的关系数据库系统来实现数据的存储。此外, 性能数据库还存储了管理员添加的主机IP 及服务端口等信息。
1.3 Web端子系统
Web端子提供了管理网络服务的Web 用户界面, 实现了管理服务器主机及其提供服务的功能。在JSP 页面中嵌入Apple 动态显示网络服务性能曲线。Web 服务器端使用JSP 动态脚本技术从数据库依次取出各网络服务的响应时间数据, 按照预定义的封装格式传输给客户端Applet, 利用Applet 丰富的图形界面绘制功能, 实现性能曲线的实时动态绘制[5]。
2 网络服务响应时间测算
对于面向连接的客户端/服务器网络通信模型,Socket 即套接字是网络通信端点的抽象表示, 用于在客户端和服务器之间建立可靠、双向的持续流式连接[6]。Java 类库中提供了Socket 类, 用来在程序中建立一个双向连接, 以实现数据交换的通道, 是Java 实现流式Socket 通信的主要工具。创建一个Socket 对象就是建立一个客户端与服务器间的连接。创建Socket 对象时, 需要指