基于國產(chǎ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ù)器[6]??紤]到這些因素之間的相互依賴(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í)間。
評論