基于國產(chǎn)基礎(chǔ)軟件應(yīng)用系統(tǒng)的性能測試與優(yōu)化
國產(chǎn)基礎(chǔ)軟件的性能是影響軟件應(yīng)用的關(guān)鍵因素,只有國產(chǎn)基礎(chǔ)軟件的應(yīng)用系統(tǒng)在性能方面滿足了用戶的需求才能被用戶接受。應(yīng)用系統(tǒng)與國產(chǎn)基礎(chǔ)軟件的集成理論上是可行的,但是,在高并發(fā)量、高訪問數(shù)據(jù)量情況下,基于國產(chǎn)基礎(chǔ)軟件應(yīng)用系統(tǒng)的性能能否滿足需求尚未得到驗(yàn)證。因此,需要對(duì)國產(chǎn)基礎(chǔ)軟件組合以及包含實(shí)際應(yīng)用的完整系統(tǒng)進(jìn)行性能測試。
本文以基于國產(chǎn)基礎(chǔ)軟件的醫(yī)療信息系統(tǒng)為例,介紹如何測試系統(tǒng)在承受高并發(fā)量、高訪問數(shù)據(jù)量情況下的性能,并對(duì)影響系統(tǒng)性能的主要因素進(jìn)行分析,提出了系統(tǒng)的性能優(yōu)化方案。實(shí)驗(yàn)結(jié)果表明,該方案大幅提高了系統(tǒng)性能,為基于國產(chǎn)基礎(chǔ)軟件的應(yīng)用系統(tǒng)性能優(yōu)化提供了一個(gè)可借鑒的方法。
1 性能測試
1.1 性能測試方法
性能測試是通過模擬大量用戶與系統(tǒng)進(jìn)行交互的行為,對(duì)被測系統(tǒng)進(jìn)行加壓,獲取系統(tǒng)負(fù)載增加或在特定負(fù)載時(shí),用戶的真實(shí)體驗(yàn),從而確定系統(tǒng)所能承受的最大負(fù)載與特定負(fù)載下的性能表現(xiàn)。
系統(tǒng)的性能測試方法較多,按照測試目的分類,可以分為負(fù)載測試、壓力測試、配置測試、并發(fā)測試、可靠性測試等[1]。其中,負(fù)載測試是通過在被測系統(tǒng)上不斷增加負(fù)載壓力,獲得系統(tǒng)在不同負(fù)載下的性能表現(xiàn)。壓力測試主要測試系統(tǒng)資源在飽和狀態(tài)時(shí),應(yīng)用系統(tǒng)能夠提供的最大服務(wù)級(jí)別。本文選擇負(fù)載測試和壓力測試對(duì)系統(tǒng)進(jìn)行了多輪的測試。
1.2 性能指標(biāo)
性能指標(biāo)是描述系統(tǒng)性能最直接的數(shù)據(jù),提供了性能度量的標(biāo)準(zhǔn)。本文在測試中對(duì)并發(fā)用戶數(shù)、響應(yīng)時(shí)間、吞吐量、資源利用率等性能指標(biāo)進(jìn)行監(jiān)控。性能指標(biāo)描述如下:
(1)并發(fā)用戶數(shù),在特定時(shí)間內(nèi),同時(shí)進(jìn)行會(huì)話的用戶數(shù)。
(2)響應(yīng)時(shí)間,從請求的發(fā)出到客戶端收到服務(wù)器響應(yīng)所經(jīng)歷的時(shí)間延遲。
(3)吞吐量,在單位時(shí)間內(nèi)系統(tǒng)處理客戶請求的數(shù)量。
(4)資源利用率,系統(tǒng)各種資源的使用狀況,比如服務(wù)器的CPU、內(nèi)存和網(wǎng)絡(luò)帶寬等。
2 性能測試實(shí)施
2.1 系統(tǒng)分析
醫(yī)療信息系統(tǒng)構(gòu)建于國產(chǎn)基礎(chǔ)軟件的政務(wù)信息化領(lǐng)域平臺(tái)體系,采用J2EE架構(gòu),使用JSP、Strut、Hibernate等技術(shù)開發(fā),是以國產(chǎn)基礎(chǔ)軟件為核心、低成本的公共服務(wù)系統(tǒng)原型和解決方案。醫(yī)療信息系統(tǒng)體系結(jié)構(gòu)如圖1所示。
醫(yī)療信息系統(tǒng)主要面向各大醫(yī)院,對(duì)醫(yī)院的需求調(diào)研與系統(tǒng)分析如表1所示[2]。
性能測試需要模擬大量用戶的操作行為,需要測試工具的支持來實(shí)現(xiàn)用戶的行為模擬、負(fù)載的生成、數(shù)據(jù)采集與分析等。本文引入測試工具LoadRunner對(duì)系統(tǒng)進(jìn)行性能測試,測試基于國產(chǎn)基礎(chǔ)軟件的醫(yī)療信息系統(tǒng)的性能能否滿足表1所示的需求。
評(píng)論