基于國(guó)產(chǎn)基礎(chǔ)軟件應(yīng)用系統(tǒng)的性能測(cè)試與優(yōu)化研究
2.3 錄制測(cè)試腳本
測(cè)試腳本是一組代碼,執(zhí)行時(shí),可以模擬用戶操作對(duì)服務(wù)器產(chǎn)生的請(qǐng)求數(shù)據(jù),或是模擬用戶執(zhí)行操作的過(guò)程、用戶等待行為等。腳本的錄制按照以下步驟執(zhí)行:
(1)使用LoadRunner錄制測(cè)試從業(yè)務(wù)使用頻繁程度以及負(fù)載量的大小選擇新建患者資料、患者資料查詢、新增日程功能作為三組測(cè)試[4]。這三組測(cè)試腳本模擬的執(zhí)行過(guò)程為系統(tǒng)登錄、業(yè)務(wù)操作和退出系統(tǒng)。
(2)每個(gè)操作定義為一個(gè)事務(wù),在事務(wù)前后加入隨機(jī)的思考時(shí)間。
(3)在事務(wù)前設(shè)置集合點(diǎn),保證用戶執(zhí)行操作的并發(fā)。
(4)在用戶實(shí)際操作的過(guò)程中,不同用戶提交的數(shù)據(jù)、系統(tǒng)動(dòng)態(tài)生成的會(huì)話標(biāo)志是不一致的。通過(guò)參數(shù)化來(lái)設(shè)定差異值的取值范圍、迭代方式,實(shí)現(xiàn)數(shù)據(jù)的變量化,而系統(tǒng)的會(huì)話標(biāo)志如session,則需要設(shè)置關(guān)聯(lián)來(lái)保存。
2.4 設(shè)計(jì)測(cè)試場(chǎng)景
在性能測(cè)試中,常見(jiàn)的錯(cuò)誤觀點(diǎn)是只設(shè)置單一的場(chǎng)景。場(chǎng)景的設(shè)計(jì)是至關(guān)重要的,只有設(shè)計(jì)的測(cè)試場(chǎng)景真實(shí)地反映用戶的實(shí)際場(chǎng)景,性能測(cè)試的結(jié)果才可靠。
場(chǎng)景的設(shè)計(jì)需要考慮到系統(tǒng)運(yùn)行時(shí),不同操作對(duì)系統(tǒng)形成的負(fù)載差異,需要確定典型的應(yīng)用場(chǎng)景下不同操作用戶的比例[5]。醫(yī)療信息系統(tǒng)日常執(zhí)行新建患者資料、查詢患者資料、新建日程的比例分別為25%、60%、15%。
在創(chuàng)建的場(chǎng)景中載入已錄制的三組測(cè)試腳本,并設(shè)置執(zhí)行比例。編輯場(chǎng)景中的計(jì)劃生產(chǎn)器,設(shè)置虛擬用戶以一定的間隔時(shí)間按比例遞增,逐步啟動(dòng)與服務(wù)器建立連接。
2.5 分析測(cè)試結(jié)果
在性能測(cè)試的過(guò)程中,LoadRunner會(huì)收集到大量的測(cè)試數(shù)據(jù),包括每個(gè)性能指標(biāo),如事務(wù)的錯(cuò)誤、警告和通知信息等。并發(fā)用戶數(shù)為200的事務(wù)響應(yīng)時(shí)間如表3所示。
在測(cè)試過(guò)程中出現(xiàn)的問(wèn)題:(1)大量用戶并發(fā)時(shí),服務(wù)器CPU、內(nèi)存的資源利用率卻很低;(2)事務(wù)執(zhí)行成功率低、成功事務(wù)的平均響應(yīng)時(shí)間長(zhǎng),很多事務(wù)因?yàn)檫B接超時(shí)而失??;(3)出現(xiàn)內(nèi)存泄露;(4)Tongweb控制臺(tái)顯示連接數(shù)據(jù)庫(kù)時(shí)出現(xiàn)網(wǎng)絡(luò)通信異常。
從測(cè)試結(jié)果可見(jiàn),系統(tǒng)存在性能瓶頸。因此,為了使系統(tǒng)達(dá)到最佳的性能,需要分析測(cè)試環(huán)境對(duì)系統(tǒng)性能的影響,對(duì)其進(jìn)行性能優(yōu)化,摒除系統(tǒng)性能瓶頸。
3 系統(tǒng)優(yōu)化
3.1 系統(tǒng)優(yōu)化框架
根據(jù)Mercury公司的報(bào)告,系統(tǒng)的性能問(wèn)題由許多因素構(gòu)成。系統(tǒng)結(jié)構(gòu)、代碼的優(yōu)化程度、網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)庫(kù)服務(wù)器、應(yīng)用服務(wù)器都會(huì)對(duì)系統(tǒng)的性能表現(xiàn)造成影響。但是,影響系統(tǒng)優(yōu)化主要因素是網(wǎng)絡(luò)環(huán)境、應(yīng)用程序、應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器[6]??紤]到這些因素之間的相互依賴關(guān)系,采用從高層到低層的優(yōu)化方法。該方法的特點(diǎn)是先調(diào)優(yōu)高層的環(huán)境,然后調(diào)優(yōu)較低層的環(huán)境,符合高層實(shí)現(xiàn)依賴于低層實(shí)現(xiàn)的一般規(guī)律。優(yōu)化層次如圖2所示,但如果隨意調(diào)整,容易造成循環(huán)。
(1)網(wǎng)絡(luò)環(huán)境優(yōu)化
網(wǎng)絡(luò)是影響系統(tǒng)性能的重要因素之一,其影響主要反映在事務(wù)的響應(yīng)時(shí)間與吞吐量上。在測(cè)試過(guò)程中,如果吞吐量沒(méi)有隨并發(fā)用戶增多而增大,且事務(wù)響應(yīng)時(shí)間比較長(zhǎng)時(shí),可以考慮對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化,改善網(wǎng)絡(luò)的帶寬。
(2)應(yīng)用程序優(yōu)化
應(yīng)用程序優(yōu)化針對(duì)數(shù)據(jù)訪問(wèn)層,其優(yōu)化措施主要有以下幾方面:(1)優(yōu)化SQL語(yǔ)句;(2)盡量引入連接池機(jī)制,減少頻繁打開(kāi)、關(guān)閉數(shù)據(jù)庫(kù)連接的操作,控制當(dāng)前激活的數(shù)據(jù)庫(kù)連接總數(shù),防止系統(tǒng)過(guò)載;(3)引入緩存機(jī)制,以減少磁盤I/O的次數(shù)。這些優(yōu)化措施能夠提高數(shù)據(jù)讀取速率,減少訪問(wèn)響應(yīng)時(shí)間,降低資源的使用率。
(3)應(yīng)用服務(wù)器優(yōu)化
應(yīng)用服務(wù)器優(yōu)化集中在最大連接限制數(shù)、內(nèi)存配置。在大量并發(fā)的情況下,應(yīng)用服務(wù)器承受很大的負(fù)載壓力,過(guò)多地連接會(huì)很快消耗掉大量系統(tǒng)資源,過(guò)低的連接限制會(huì)增大連接時(shí)延,延長(zhǎng)事務(wù)響應(yīng)時(shí)間。優(yōu)化時(shí)根據(jù)系統(tǒng)資源合理設(shè)置應(yīng)用服務(wù)器最大連接限制數(shù)、內(nèi)存,避免內(nèi)存泄露現(xiàn)象出現(xiàn),盡量減少響應(yīng)時(shí)間。
(4)數(shù)據(jù)庫(kù)系統(tǒng)優(yōu)化
數(shù)據(jù)庫(kù)系統(tǒng)優(yōu)化主要是配置數(shù)據(jù)緩存區(qū)大小、最大并發(fā)會(huì)話數(shù),為數(shù)據(jù)庫(kù)建立合理的索引。設(shè)置較大數(shù)據(jù)緩存區(qū),可以減少數(shù)據(jù)交換次數(shù),降低系統(tǒng)資源消耗。為大數(shù)據(jù)量、訪問(wèn)頻繁的數(shù)據(jù)庫(kù)表建立合理的索引,能夠消除對(duì)表的順序存儲(chǔ),從而提高系統(tǒng)的檢索性能。在CPU資源和I/O資源可用的情況下,如果服務(wù)器有很長(zhǎng)的事務(wù)等待隊(duì)列,增大最大并發(fā)會(huì)話數(shù),可以減少響應(yīng)時(shí)間。
評(píng)論