摘要:應用系統整體性能欠佳,可能導致系統在大業務量時出現功能、效率和安全性問題。現代的信息系統中新型軟件架構層出不窮,軟硬件和網絡通訊之間的相互關聯作用日益復雜,加大了系統性能瓶頸查找的難度。探討如何通過多智能代理技術等方法,截取、分析和回放網絡數據流來評價軟件系統的性能。
關鍵詞:性能測試;網絡數據流分析;多智能代理
中圖分類號: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.