基于Multi-agent的网络数据流软件性能测试方法研究

时间:2022-10-15 09:53:11

基于Multi-agent的网络数据流软件性能测试方法研究

摘要:应用系统整体性能欠佳,可能导致系统在大业务量时出现功能、效率和安全性问题。现代的信息系统中新型软件架构层出不穷,软硬件和网络通讯之间的相互关联作用日益复杂,加大了系统性能瓶颈查找的难度。探讨如何通过多智能技术等方法,截取、分析和回放网络数据流来评价软件系统的性能。

关键词:性能测试;网络数据流分析;多智能

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)23-900-02

Study of Network Data Stream Software Performance Test Method Based on Multi-agent

REN Yan-fei

(Department of Math and Engineering,Puyang Voctional Institute,Puyang 457000,China)

Abstract: The application system overall performance is unsatisfactory, possibly causes the system when the great business volume presents the function, the efficiency and the secure question. In the modern information system the new software construction emerges one after another incessantly, the software and hardware and between the network communication's incident cross-correlation function was day by day complex, has increased the difficulty which the system performance bottleneck searched. Discusses the method with multi-intelligent agent technology, the interception, the analysis and the playbacking network data stream appraises software system's performance.

Key words: Performance test; Network data flow analysis; Multi-agent

1 引言

随着越来越多的机构在IT平台上运行核心业务,系统整体性能的测评成为研究的热点,系统整体性能评价方法被受关注,不但关注测试结果,还关注系统瓶颈的寻找。由于系统的软硬件、网络及其配置会影响结果并且互相作用,使得分析、发现和判断问题变得较为复杂。本文结合Agent技术的发展,采用多Agent的架构和网络数据流分析的方法来实现系统性能评价。此方法本身的分布式和智能化使其不但可以适用于C/S或B/S架构的应用系统,还可以适应新型软件系统如端到端(P2P)系统、面向服务架构(SOA)的性能评价需要。通过应用系统的网络数据流的智能收集、分析和回放来实现性能评价,这个评价方法既包含了主动测量的方法,也包括了被动测量的理论。智能捕获网络数据流分析是被动测量的部分,而改变相关参数设置并回放给应用系统是主动测量的方法。本文就网络通信流分析Multi-agent用于应用软件性能评价展开研究,阐述待解决的问题、方法的设计和实现。

2 性能测试平台的框架设计

基于多智能的检测机制是人工智能技术与测试技术的结合。基于Agent的计算为分布式、多人机交互的复杂问题提供一种有别于传统确定问题求解的解决方式,已被广泛应用于分布式控制、复杂问题仿真等领域。基于Multi-agent的分布式智能检测平台,主要包括单个Agent的智能推理、Agent间的协作通信、根据系统架构和不同指标的检测需要,布置Agent以最小化对业务流程的影响以及检测分析结果的多维度表达形式。信息采集Agent对于网络流量的检测,可设计为支持协议分析识别常规网络应用,也可扩展分析P2P业务流,通过协议解析、模式匹配和关联等方法标识所收集和反馈的信息,以TPS等代表度量结果,运用时域、地址等匹配消除冗余度量信息,给出多维度统计分析结果。软件性能的评价指标体系不限于单个指标,可以依不同应用形成评价子目标。实践时可结合各子目标的评价实践,将各评价子目标迭代分解成若干个可评价的基础指标,同时得到反向合成评价子目标的方法。

多智能体环境下,多个智能体可以合作或者竞争,本设计采用合作的模式,协同完成团体规划的目标。协同Agent协调各位置不同类型的智能完成各自目标,再通过这些节点之间的通信协作,实现整体目标,获知整个系统的性能指标和系统瓶颈。各类Agent采用适用于软件性能检测的推理规则和信息交换格式,通过网络设备或计算机上的监控程序实现,协同 Agent还可采用多种统计分析格式解析软件性能。实现上首先分析应用程序模型和网络模型,寻找关键链路和性能相关的关键服务,作为相应的数据源提交给相关智能。之后智能对数据流进行重构,记录重构结果,提供智能算法的介入和实现。设计的第1步是从系统应用服务(Service)的角度将性能核心服务区分出来并用标准架构表达,设计的第2步是将 Agent进行区分。之后的设计就进入细化评价方法的实现。根据以往进行的应用系统性能瓶颈查找的经验,如果性能瓶颈在于服务器端,其潜在瓶颈可能位于后台处理进程能力、数据库处理和存储性能或者应用程序服务器的数据收发速度。若干内在可变因子组成了性能的外在表现,包括软件质量、系统架构及配置的合理性以及网络的传输性能。在常见的瘦客户端大服务器端环境下,只在极少数情况下,性能瓶颈发生在客户端或者浏览器端,即使发生,在很大程度上也和网络的某些特性相关联。因此将评价设计的重点放在服务器端。

3 性能评价方法的实现

根据设计框架,需要展开设计的内容包括定义系统的性能核心路径,采样关键应用链路的数据流,分析和提取核心内容,定义智能的处理过程,编程实现其收集、通讯和交互过程。Agent以并行线程进行模拟和交互,向服务器端提出应用请求,获取服务器端反馈,分析、通讯和汇总,从而获取性能评价的结果,Agent可以其他工具如Ttcp,ping,Smartbits等的一个输出信息,给出统一定义格式的数据内容。系统的性能核心路径采样关键应用链路的数据流的设计,一对A和B用于同步测试和监控并通讯协商过程。为简化试验环境用户User执行一次性的被统计操作,节点的Agent 暂且只设置A,B 两点位于系统前端和后端同步监控和协作控制。用于学习的一次性的操作由User发起,标记为XML,测试时候由前端 A点发起主动网络数据流,如增加到其他多点可依此类推,可表达如下:

Agent(A,B,C)

Init(At(A,[Front point]) ∧ At(B,[End point]) ∧ At

(User,[client point] ∧At (C,[controller point])

Goal (Returned(TPS))

Action(Captured(agent,Actice data stream)

PRECOND: order(C,job1) ∧ finding(signal,[packet x] ∧ deal(A,XML)

EFFECT:returned(XML)

Action(Replay(agent,XML)

PRECOND:ordered(C,job2) ∧ replay(A,XML)

EFFECT:Returned(test stream)

CONCURRENT: replay(B,XML)

Action(captured(agent,TPS)

PRECOND:ordered(C,job3) ∧ test(A,TPS) ∧ test(B,TPS)

EFFECT:Returned(performance value)

评价的结果用每分钟处理的事务数量(TPM)或每秒处理的事务量(TPS)来表示。对于任意的信息系统,没有统一的性能评价目标,意味着同步提交N个业务请求系统可以在给定时间T分钟内正确完成 N个事务,那么其TPM结果就是N/T。正确完成事务的标志,在此模型定义为由系统的压力和负载处理情况的临界参数来反映。系统的响应出错比率达到1%或2%时,可认为达到临界状态。这个比率随着系统的重要性的不同进行调整。另一个达到临界状态的标志是,传输时间是理想情况传输时间的两到三倍,数据均通过响应统计agent收集。

此方法的优点在于测试并非启动自真实的客户端。因此无须对客户端进行任何配置和修改,不需要完整了解原应用的设计细节,尤其适合在文档不完整、应用架构复杂的情况下进行性能测试。同时这样的方法也使得动态调整响应参数成为可能,agent可以就特殊的响应给出新的特殊请求。因此可以高度仿真真实流量及其交互过程。鉴于此方法的整个过程无须系统使用者和系统设计者介入,而且系统实测的大量数据收集工作在系统的远端即可完成,因此有较好的实用性。测试要规避的风险是测试数据流和系统拒绝服务攻击(DOS)的区别。

4 测试实例

测试实例是一个电子商务平台的性能测试。系统采用三层架构电子商务模式,将Web服务器、中间件服务器和数据库服务器设置为独立的层次组件,每层组件包含负载均衡的两个Cisco交换设备,联入各层的多台服务器,服务器也采用两台冗余备份方式。因此系统设计从网络设备和各层的系统平台均考虑了设备的冗余和负载均衡。应用系统是基于J2EE架构开发的B/S应用系统。业务内容是为外网用户提供业务的查询、选择、提交、反馈等。此项性能测试设计对缓冲队列长度(模拟浏览器方式)、连续串行请求下的长时间运行(模拟浏览器方式)、并发性能(模拟Java客户端方式)等内容进行测试,同时考察网络客户端与前台服务器之间的互连、关键链路流量分析、应用服务器吞吐流量分析等方面。测试发现同一系统平台上的多个应用性能差距悬殊。某业务组件处理能力仅为0.03TPS,远低于平均水平。此时其他监控点均显示低负载,如CPU利用率低于35%,网络带宽利用率小于2%,证明该系统瓶颈为部分软件组件质量。压力密集时还发现出错集中在某台服务器,后续发现其配置不当也成为瓶颈之一。

5结束语

提出了基于多智能的网络数据流进行软件性能测试的方法,分析了常见的业务模型中的关键链路和业务的关键流量模型,进行了协议分析和数据处理阐述其工作原理。基于网络数据流量的软件性能测试方法在一个真实运营的系统中进行了测试实践。实践证明此方法可有效获取所需性能评价结果,定位性能瓶颈,且具有独到的优势。本文构建基于agent的分布式智能监测系统,为应用系统的实时、优化管理提供支持。

参考文献:

[1] 支晓繁,张世永.信息系统安全量化评价要素研究[J].计算机工程,2004,30(10):122-123.

[2] 丁月华,王方丽.基于Web软件的性能测试[J].计算机与数字工程,2006,34(1):47-48.

[3] 黄筱燕.无线实时流媒体通信网络性能的仿真研究[D].南京工业大学,2006.

上一篇:基于智能客户端技术的企业业务的统一管理平台... 下一篇:浅析Bayesian分类的应用