基于國產(chǎn)基礎軟件應用系統的性能測試與優(yōu)化

發(fā)布時(shí)間:2011-1-21 20:21    發(fā)布者:techshare
關(guān)鍵詞: 軟件 , 性能測試 , 優(yōu)化
國產(chǎn)基礎軟件的性能是影響軟件應用的關(guān)鍵因素,只有國產(chǎn)基礎軟件的應用系統在性能方面滿(mǎn)足了用戶(hù)的需求才能被用戶(hù)接受。應用系統與國產(chǎn)基礎軟件的集成理論上是可行的,但是,在高并發(fā)量、高訪(fǎng)問(wèn)數據量情況下,基于國產(chǎn)基礎軟件應用系統的性能能否滿(mǎn)足需求尚未得到驗證。因此,需要對國產(chǎn)基礎軟件組合以及包含實(shí)際應用的完整系統進(jìn)行性能測試。

本文以基于國產(chǎn)基礎軟件的醫療信息系統為例,介紹如何測試系統在承受高并發(fā)量、高訪(fǎng)問(wèn)數據量情況下的性能,并對影響系統性能的主要因素進(jìn)行分析,提出了系統的性能優(yōu)化方案。實(shí)驗結果表明,該方案大幅提高了系統性能,為基于國產(chǎn)基礎軟件的應用系統性能優(yōu)化提供了一個(gè)可借鑒的方法。

1 性能測試

1.1 性能測試方法

性能測試是通過(guò)模擬大量用戶(hù)與系統進(jìn)行交互的行為,對被測系統進(jìn)行加壓,獲取系統負載增加或在特定負載時(shí),用戶(hù)的真實(shí)體驗,從而確定系統所能承受的最大負載與特定負載下的性能表現。

系統的性能測試方法較多,按照測試目的分類(lèi),可以分為負載測試、壓力測試、配置測試、并發(fā)測試、可靠性測試等。其中,負載測試是通過(guò)在被測系統上不斷增加負載壓力,獲得系統在不同負載下的性能表現。壓力測試主要測試系統資源在飽和狀態(tài)時(shí),應用系統能夠提供的最大服務(wù)級別。本文選擇負載測試和壓力測試對系統進(jìn)行了多輪的測試。

1.2 性能指標

性能指標是描述系統性能最直接的數據,提供了性能度量的標準。本文在測試中對并發(fā)用戶(hù)數、響應時(shí)間、吞吐量、資源利用率等性能指標進(jìn)行監控。性能指標描述如下:

(1)并發(fā)用戶(hù)數,在特定時(shí)間內,同時(shí)進(jìn)行會(huì )話(huà)的用戶(hù)數。

(2)響應時(shí)間,從請求的發(fā)出到客戶(hù)端收到服務(wù)器響應所經(jīng)歷的時(shí)間延遲。

(3)吞吐量,在單位時(shí)間內系統處理客戶(hù)請求的數量。

(4)資源利用率,系統各種資源的使用狀況,比如服務(wù)器的CPU、內存和網(wǎng)絡(luò )帶寬等。

2 性能測試實(shí)施

2.1 系統分析

醫療信息系統構建于國產(chǎn)基礎軟件的政務(wù)信息化領(lǐng)域平臺體系,采用J2EE架構,使用JSP、Strut、Hibernate等技術(shù)開(kāi)發(fā),是以國產(chǎn)基礎軟件為核心、低成本的公共服務(wù)系統原型和解決方案。醫療信息系統體系結構如圖1所示。





醫療信息系統主要面向各大醫院,對醫院的需求調研與系統分析如表1所示。





性能測試需要模擬大量用戶(hù)的操作行為,需要測試工具的支持來(lái)實(shí)現用戶(hù)的行為模擬、負載的生成、數據采集與分析等。本文引入測試工具LoadRunner對系統進(jìn)行性能測試,測試基于國產(chǎn)基礎軟件的醫療信息系統的性能能否滿(mǎn)足表1所示的需求。

   



2.2 測試環(huán)境

測試時(shí),使用1臺PC機作為負載測試機,1臺服務(wù)器作為應用服務(wù)器和數據庫服務(wù)器。PC機采用100 Mb/s局域網(wǎng)連接服務(wù)器。服務(wù)器軟件組成方案如表2所示。





2.3 錄制測試腳本

測試腳本是一組代碼,執行時(shí),可以模擬用戶(hù)操作對服務(wù)器產(chǎn)生的請求數據,或是模擬用戶(hù)執行操作的過(guò)程、用戶(hù)等待行為等。腳本的錄制按照以下步驟執行:

(1)使用LoadRunner錄制測試從業(yè)務(wù)使用頻繁程度以及負載量的大小選擇新建患者資料、患者資料查詢(xún)、新增日程功能作為三組測試。這三組測試腳本模擬的執行過(guò)程為系統登錄、業(yè)務(wù)操作和退出系統。

(2)每個(gè)操作定義為一個(gè)事務(wù),在事務(wù)前后加入隨機的思考時(shí)間。

(3)在事務(wù)前設置集合點(diǎn),保證用戶(hù)執行操作的并發(fā)。

(4)在用戶(hù)實(shí)際操作的過(guò)程中,不同用戶(hù)提交的數據、系統動(dòng)態(tài)生成的會(huì )話(huà)標志是不一致的。通過(guò)參數化來(lái)設定差異值的取值范圍、迭代方式,實(shí)現數據的變量化,而系統的會(huì )話(huà)標志如session,則需要設置關(guān)聯(lián)來(lái)保存。

2.4 設計測試場(chǎng)景

在性能測試中,常見(jiàn)的錯誤觀(guān)點(diǎn)是只設置單一的場(chǎng)景。場(chǎng)景的設計是至關(guān)重要的,只有設計的測試場(chǎng)景真實(shí)地反映用戶(hù)的實(shí)際場(chǎng)景,性能測試的結果才可靠。

場(chǎng)景的設計需要考慮到系統運行時(shí),不同操作對系統形成的負載差異,需要確定典型的應用場(chǎng)景下不同操作用戶(hù)的比例。醫療信息系統日常執行新建患者資料、查詢(xún)患者資料、新建日程的比例分別為25%、60%、15%。

在創(chuàng )建的場(chǎng)景中載入已錄制的三組測試腳本,并設置執行比例。編輯場(chǎng)景中的計劃生產(chǎn)器,設置虛擬用戶(hù)以一定的間隔時(shí)間按比例遞增,逐步啟動(dòng)與服務(wù)器建立連接。

2.5 分析測試結果

在性能測試的過(guò)程中,LoadRunner會(huì )收集到大量的測試數據,包括每個(gè)性能指標,如事務(wù)的錯誤、警告和通知信息等。并發(fā)用戶(hù)數為200的事務(wù)響應時(shí)間如表3所示。





在測試過(guò)程中出現的問(wèn)題:(1)大量用戶(hù)并發(fā)時(shí),服務(wù)器CPU、內存的資源利用率卻很低;(2)事務(wù)執行成功率低、成功事務(wù)的平均響應時(shí)間長(cháng),很多事務(wù)因為連接超時(shí)而失;(3)出現內存泄露;(4)Tongweb控制臺顯示連接數據庫時(shí)出現網(wǎng)絡(luò )通信異常。

從測試結果可見(jiàn),系統存在性能瓶頸。因此,為了使系統達到最佳的性能,需要分析測試環(huán)境對系統性能的影響,對其進(jìn)行性能優(yōu)化,摒除系統性能瓶頸。

   



3 系統優(yōu)化

3.1 系統優(yōu)化框架

根據Mercury公司的報告,系統的性能問(wèn)題由許多因素構成。系統結構、代碼的優(yōu)化程度、網(wǎng)絡(luò )環(huán)境、數據庫服務(wù)器、應用服務(wù)器都會(huì )對系統的性能表現造成影響。但是,影響系統優(yōu)化主要因素是網(wǎng)絡(luò )環(huán)境、應用程序、應用服務(wù)器和數據庫服務(wù)器?紤]到這些因素之間的相互依賴(lài)關(guān)系,采用從高層到低層的優(yōu)化方法。該方法的特點(diǎn)是先調優(yōu)高層的環(huán)境,然后調優(yōu)較低層的環(huán)境,符合高層實(shí)現依賴(lài)于低層實(shí)現的一般規律。優(yōu)化層次如圖2所示,但如果隨意調整,容易造成循環(huán)。





(1)網(wǎng)絡(luò )環(huán)境優(yōu)化

網(wǎng)絡(luò )是影響系統性能的重要因素之一,其影響主要反映在事務(wù)的響應時(shí)間與吞吐量上。在測試過(guò)程中,如果吞吐量沒(méi)有隨并發(fā)用戶(hù)增多而增大,且事務(wù)響應時(shí)間比較長(cháng)時(shí),可以考慮對網(wǎng)絡(luò )進(jìn)行優(yōu)化,改善網(wǎng)絡(luò )的帶寬。

(2)應用程序優(yōu)化

應用程序優(yōu)化針對數據訪(fǎng)問(wèn)層,其優(yōu)化措施主要有以下幾方面:(1)優(yōu)化SQL語(yǔ)句;(2)盡量引入連接池機制,減少頻繁打開(kāi)、關(guān)閉數據庫連接的操作,控制當前激活的數據庫連接總數,防止系統過(guò)載;(3)引入緩存機制,以減少磁盤(pán)I/O的次數。這些優(yōu)化措施能夠提高數據讀取速率,減少訪(fǎng)問(wèn)響應時(shí)間,降低資源的使用率。

(3)應用服務(wù)器優(yōu)化

應用服務(wù)器優(yōu)化集中在最大連接限制數、內存配置。在大量并發(fā)的情況下,應用服務(wù)器承受很大的負載壓力,過(guò)多地連接會(huì )很快消耗掉大量系統資源,過(guò)低的連接限制會(huì )增大連接時(shí)延,延長(cháng)事務(wù)響應時(shí)間。優(yōu)化時(shí)根據系統資源合理設置應用服務(wù)器最大連接限制數、內存,避免內存泄露現象出現,盡量減少響應時(shí)間。

(4)數據庫系統優(yōu)化

數據庫系統優(yōu)化主要是配置數據緩存區大小、最大并發(fā)會(huì )話(huà)數,為數據庫建立合理的索引。設置較大數據緩存區,可以減少數據交換次數,降低系統資源消耗。為大數據量、訪(fǎng)問(wèn)頻繁的數據庫表建立合理的索引,能夠消除對表的順序存儲,從而提高系統的檢索性能。在CPU資源和I/O資源可用的情況下,如果服務(wù)器有很長(cháng)的事務(wù)等待隊列,增大最大并發(fā)會(huì )話(huà)數,可以減少響應時(shí)間。

3.2 醫療信息系統的優(yōu)化方案

本文的性能測試是在局域網(wǎng)中進(jìn)行,因此可以排除網(wǎng)絡(luò )帶寬對系統性能的影響。通過(guò)分析性能測試結果,結合系統優(yōu)化框架,醫療信息系統的優(yōu)化措施如下:

(1)應用系統的數據庫訪(fǎng)問(wèn)層采用了數據庫持久化技術(shù)Hibernate。編輯應用程序的配置文件hibernate.cfg.xml,引入第三方的連接池c3p0,設置連接池的最大連接數為100;在Hibernate中使用二級緩存,設置Hibernate的加載特征為延遲加載。

(2)在應用服務(wù)器方面,調整Tongweb的JVM堆棧和內存的最大值、最大連接人數。編輯TongWeb4.0/bin/tongserver.sh文件,把JAVA_ARGS=”-Djmx.invoke.getters=true”修改為JAVA_ARGS=”-Xms256m-XmX750m”,調整JVM堆棧和內存的最大值為750 M,增大Tongweb的JVM虛擬堆棧和內存值后,不再出現內存泄露現象;編輯tongweb4.0/conf/tongweb.xml中socket-back-log由50調為200,調整Tongweb的減少需要等待連接數,減少響應時(shí)間。

   



(3)在數據庫系統方面,通過(guò)對數據表的檢查,發(fā)現數據庫表沒(méi)有建立索引,為訪(fǎng)問(wèn)頻繁的表添加了索引。DM數據庫的參數調整如表4所示。





數據庫作出這樣的修改主要是大量并發(fā)時(shí),由于數據量大,一般將數據緩沖區設為物理內存的80%左右(BUFFER的單位值為8 KB);數據庫的最大會(huì )話(huà)數需要大于應用程序所設置的連接池;CPU仍存在可用資源,可提高工作線(xiàn)程數,減少響應時(shí)間。優(yōu)化后,并發(fā)用戶(hù)數為200的事務(wù)響應時(shí)間如表5所示。





通過(guò)對表3、表5結果對比可以看出,經(jīng)過(guò)系統優(yōu)化后,大幅提升了系統的性能。系統性能也達到了醫療信息系統的性能總體需求,確保了基于國產(chǎn)基礎軟件的醫療信息系統能夠滿(mǎn)足醫療工作及日常辦公需求。

本文介紹了基于國產(chǎn)基礎軟件的醫療信息系統的性能測試方法和過(guò)程,并對影響系統性能的主要因素進(jìn)行了分析,提出了一個(gè)系統的性能優(yōu)化方案。測試結果表明,本文提出的優(yōu)化方案可以明顯改進(jìn)基于國產(chǎn)基礎軟件的醫療信息系統的性能,能夠滿(mǎn)足應用的需求,可以應用于我國的醫療信息化建設中。

參考文獻

段念.軟件性能測試過(guò)程詳解與案例剖析[M].北京:清華大學(xué)出版社,2006.

郝建營(yíng),晏海華,劉超,等.一種有效的Web性能測試方法及其應用[J].計算機應用研究,2007,(1):275-277.

張忠磊,孫玉娟,李秀芳.國產(chǎn)軟硬件在實(shí)現電子政務(wù)集成應用上的框架研究[J].微計算機信息,2006,22(12-3):198-199.

DRAHEIM D, GRUNDY J, HOSKING J. Realistic load testing of Web applications[C]. Proceedings of the Conference on Software Maintenance and Reengineering,2006.

簡(jiǎn)玲.B/S系統性能測試的設計與實(shí)現[J].計算機工程,2009,35(10):51-53.

熊忠陽(yáng),李光勇,張玉芳,等.Web集群系統性能測試與優(yōu)化[J].計算機應用研究,2008,25(3):826-832.
本文地址:http://selenalain.com/thread-50461-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页