




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 性能優化技術在web應用系統中的探討 鄭林芳【摘要】 web應用系統目前作為信息化建設的主要模式,在各行各業得到廣泛應用。某市存量房網簽交易系統是服務于市民的二手房網上合同簽訂的交易平臺。通過對網簽平臺的硬件層面、應用部署層面、數據庫層面和應用系統層面對系統的性能瓶頸進行了分析,通過集群應用服務器、負載均衡、oracle預編譯等技術對系統進行性能優化,改善系統性能,以滿足系統全面應用的性能要求。【關鍵詞】 性能優化 數據庫 sql本人在企業實踐過程中,有幸參于了某市存量房網簽交易系統性能優化的工作。web應用系統目前作為政府信息化建設的主要
2、工作模式,在國內各工作場合都得到廣泛的應用。作為服務于市民的二手房網上簽訂合同的服務平臺,系統通過產權即時驗證、網簽即時鎖定、二手交易資金監管等手段,對市民之間的二手房買賣進行監督管理,有效地保障了市民的權益。系統推廣應用到全市后,漸漸出現了系統性能下降,請求超時等一些問題,因此對關系民生的網簽系統進行性能優化的工作迫在眉睫。該存量房網簽系統采用java的web應用技術開發,應用服務器和核心數據庫分別采用 weblogic10.0和oracle10g。通過用戶反饋情況,高峰時期到現場對系統應用的前臺體驗以及詳細的調研情況,項目組深入分析系統了系統硬件層面、應用系統層面、數據庫層面可能存在性能瓶
3、頸問題,最終從以下方面對此應用平臺進行了優化。一、硬件服務器及應用部署層面的優化web應用在服務器及應用部署層面上的性能優化,首先是確認服務器配置是否能承當得起應用的性能要求,是否需要進行更換升級。但同時必須考慮到,雖更換服務器短期內能解決部分問題,但是隨著時間的推移,問題可能還會繼續出現,仍需要深入分析服務器及應用部署可能存在的瓶頸和出現系統不穩定的潛在因素,因而從web服務器、數據庫服務器和網絡環境等方面進行詳細分析和探討:1.1 web服務器的優化web服務器主要以事務處理為主,需提供不間斷的服務,對可靠性的要求較高,故需要高性能的cpu處理和內存緩存能力,但對磁盤的性能要求不高。目前保
4、障服務的可靠性,可對應用級和主機級采用多點冗余,同時提供對外服務的方式來保證系統平臺的可用性。在配置應用服務器時還應考慮應用的架構,對于采用.net開發的系統,必須配置運行于windows server服務器上,而對于使用java框架開發的業務系統,建議配置unix或者linux作為應用服務器的操作系統,使穩定性達到最優。針對存量房網簽系統,在服務器上做了以下優化:第一:原系統采用java技術開發,為了使應用效果達到最佳,調配了兩臺性能較強的sun小型機作為應用服務器。第二:對提供對外服務的web應用來說,每個服務配備過多內存并不能使內存處理能力達到最優,在實際應用測試中發現內存設置為4g時系
5、統運行效率比較理想。根據兩臺服務器都配備有64g內存的現狀,項目組利用weblogic cluster技術在每臺機器上部署8個相同的對外服務,使每個對外服務都配置4g內存,由weblogic admin服務器統一管理兩臺服務器。同時對外服務時可達到16個對外服務端口,大大增加了處理能力,而且多線程的對外服務也大大增加了系統的可維護性,可對各線程分別進行更新維護。第三:在實際應用中,對外web應用的優化還可以與云技術相結合。對多臺應用服務器進行虛擬化,根據需要虛擬主機,再將虛擬主機配備給不同的系統,達到服務器資源共享功用,減少主機配備的浪費,在本次優化中由于應用服務器為專用服務器并未使用虛擬化技
6、術。最后:為使對節點服務得到更有效配置,還通過硬件負載均衡將收到的服務請求用負載均衡設備進行轉發,本優化項目中采用了f5鏈路負載均衡設備來實現,比利用apache實現的軟件負載均衡更為有效。在web服務器硬件設備進行調優后,系統平臺僅在電路檢修、大型系統補丁上線等情況下才暫停對外服務外,其余時間都能正常可靠提供服務,沒有出現系統崩潰宕機等情況。整體優化后平臺結構如圖1所示,在應用服務器和應用部署層面實現了多點冗余、負載均衡。1.2數據庫服務器方面的優化數據庫在系統中的應用越來越廣,其存儲的數據量也越來越大,存量房網簽系統其數據存儲量達到500g。網簽系統在提供服務時,很大一部分時間是耗費在數據
7、庫操作方面,故數據庫的優化工作至關重要。數據庫服務器的主要任務是處理大量的數據操作,其中最影響系統性能的其中一個因素是磁盤的i/o讀寫速度,要解決好這個問題先要對磁盤進行硬件優化處理。第一:采用磁盤陣列,把數據庫系統的磁盤進行條帶化處理,讓磁盤讀寫操作分布在raid5的不同的磁盤中,減少集中讀寫單個磁盤的現象,從而增強i/o處理能力。第二:為了增加可靠性,采用oracle rac雙機負載均衡系統,提供強而有力的數據庫保障。第三:在預算充分的情況下,采購配置固態硬盤,提高硬盤的讀寫速度。為了保持系統的可用性,項目使用了兩臺數據服務器并配置為oracle rac雙機負載,同時為了兼顧經濟性,采用了
8、固態硬盤和普通磁盤混搭的方式來部署存儲,將附件、大字段等容量大但讀寫頻率較少的數據表存儲在普通磁盤上,而把經常進行讀寫和查詢操作的多記錄數據表存儲于固態硬盤之中,以達到優化數據庫對外服務的效率。項目采用數據庫負載均衡后,應用配置采用圖2的方式實現數據庫連接,以達到雙機負載均衡的效果。1.3網絡帶寬方面的優化基于web的存量房網簽系統對外提供的服務性能高低還與網絡的帶寬有直接的影響。系統優化前,服務只提供100m帶寬,為了提高服務性能,優化方案里采用了1000m的對外服務光纖,對網絡進行升級處理。二、數據庫應用程序層面的優化由于優化時存量房網簽平臺已投入使用了較長一段時間,業務邏輯已基本符合業務
9、要求,所以此次性能優化,沒有將精力放在業務流程的優化上,而是放在硬件和數據庫的優化方面,因為數據庫的訪問速度直接影響著交易平臺的性能。數據庫硬件方面的優化上文中已進行討論,現將從數據庫應用程序方面來探討一下系統平臺的數據庫優化方案。數據庫在應用程序優化通常可分為兩個方面:sql語句和源代碼。對于源代碼,因涉及到對程序邏輯的改變,時間成本和風險上代價很高,并且對數據庫系統性能的提升收效有限;所以系統平臺在數據庫應用程序方面的優化主要以優化sql語句為主。其原因有:第一:sql語句消耗了70%至90%的數據庫資源;第二:sql語句是對數據庫進行操作的惟一途徑,對數據庫系統的性能起著決定性的作用;第
10、三:sql語句獨立于程序設計邏輯,對sql語句進行優化不會影響程序邏輯;第四:不同的sql語句寫法有不同的性能,且差異非常大。項目組在對平臺系統全面掃描分析過程中,發現數據庫并沒有處于最優水平。其問題主要集中在以下方面:第一:系統數據庫部分頻繁調用的數據庫操作語句,未采用cache技術,未充分利用oracle的預編譯技術,使頻繁使用的語句僅因為個別參數不同而被數據庫服務器頻繁編譯,耗費大量的cpu工作時間。第二:數據統計工作直接基于業務庫進行操作,在統計工作周期內數據讀取爭取資源嚴重。通過數據庫檢測,在統計周期內由于統計工作進行大量的數據讀取運算,使數據庫的讀寫性能嚴重降低,有時甚至影響到應用
11、對外提供服務。第三:由于產權認證的產權信息分別部署在各區分局,且各區分局的數據環境和數據基礎不統一,使整體性能得不到保證。針對以上情況,使在不改變整體業務邏輯的情況,項目組在數據庫應用層面采取了多項措施來提高了系統平臺性能。1、優化weblogic的數據連接配置。在實際應用中數據庫連接配置過大將導致資源浪費,過低即導致資源的頻繁申請,影響效率,項目組根據weblogic的jdbc連接池機制來管理,將jdbc連接緩沖池設置為“常用均值+常用均值*50%”,分析得到常用均值設置為20個左右,即jdbc連接緩沖池個數設置為30個,同時將最大值設置為50,超出設置值后允許每次增加10個,這樣既保證了系
12、統正常使用,同時運用連接池機制,將提高系統的效率。2、查詢操作在各種數據庫操作中所占比重較大,而查詢操作所基于的select語句在sql語句中是代價最大的語句。因此優質的sql語句和高效的查詢優化技術,可以幫助提高應用系統的性能。在優化工作中檢查sql語句,對select查詢語句,盡量避免使用select *的操作,字段提取按照“需要多少, 提取多少”的原則,查詢結果應返回給應用程序所需要的最少數量的行和列;如果系統確實需要每一列,最好在sql語句中顯式呈現每一列名稱,這樣可以避免了服務器替換*所花費的時間,因為這個工作是通過查詢數據字典完成的。3、采取逐步優化的方式對可以采取預編譯的數據庫操
13、作語句,引入預編譯技術,提高cache的命中率。在充分利用數據庫的預編譯技術下,對重復使用的數據庫語句使用變量注入的方式,減少sql語句不必要的編譯,如“select a from t1 where l1=3”和“select a from t1 where l1=4”這類查詢語句,在數據庫中被認為是兩個不同語法的語句,會被重復編譯,如采用“select a from t1 where l1=x”,通過x的賦值來得查詢結果,數據庫系統僅會對第一次調用進行預編譯,后續的語句將不再做編譯,從而提高了數據庫的處理效率。4、對于目前不便修改(多為對系統框架修改較大)的sql語句進行登記造冊,作為下次系
14、統進一步優化或升級的建議進行記錄。5、對統計工作進行分類,在優化統計邏輯的同時,對時效性要求不是很高的統計工作,建立專用于統計的物化視圖。通過網絡業務不繁忙時段的同步,為統計工作提供物化視圖,以有效減少了同時工作對業務產生影響三、應用系統層面的優化項目在應用系統層面上優化主要考慮以下兩方面:第一:將系統的頁面處理和事務處理分離,對事務進行封裝,部署時采用apache處理靜態頁面,weblogic處理業務邏輯的技術,使頁面處理和事務處理分離。第二:對各區的數據認證充分利用oracle的數據同步技術,將原來的產權一次認證方式調整為二次認證的方式進行數據認證。產權認證數據庫每天晚上從各區的數據庫中同
15、步產權 數據,市民在簽約時采用同步數據庫的數據進行第一次產權認證,由于采用了已集中的產權數據,數據庫索引齊備、數據庫部署在應用服務器的同網段,使整個簽約操作受數據庫性能影響降到最低。在市民間簽約提交時應用服務器提請第二次產權認證,第二次認證雖需讀取分局數據,但只需查證當天是否發生過數據改變即可,數據發生改變的認證不通過,數據無改變的驗證有效。此項應用層面的優化措施有效提高了應用服務器與數據庫服務器的交互效率,從而提高了系統性能。但是在最終實施中由于考慮到存量房網簽系統單純的靜態頁面不多,并且測試發現使用apache不能實質性提高系統性能,所有沒有實施。反而將業務邏輯調整為二次驗證后,利用數據集
16、中的優勢,提升應用性能,提高市民的現場應用滿意度。四、總結在本次項目優化中,通過以上措施的逐步實施,使存量房網簽系統數據庫服務器的負荷得到有效的減負,且沒有因為應用的全面推廣而出現超負荷宕機的現象發生;結合應用服務器的重新部署,服務器的響應速度明顯加快,基本實現了服務操作3秒內響應的優化目標,服務器整體性能運行正常,在近段時間市民購房熱潮中能沉穩應對,達到預期效果。但是在本次優化中,仍有部分問題尚未解決,首先是部分頻繁調用的sql語句由于對系統修改較大未能優化,加大了數據庫編譯壓力;再次對關系民生的產權數據未能全面集中認證,設計二次認證也只不過是一個權宜之計,分布式存儲無法對實時的認證提供有效的、準確的認證,下一步數據遷移工作將會是一項重點;第三,因為系統已試運行一年,基本業務邏輯已確
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政管理專科語文復習資料試題及答案
- 行政管理專科考試重點內容與試題及答案
- 2025年執業藥師新版教材試題及答案
- 護理學與藥學協作的案例討論試題及答案
- 探索行政管理的中國文化概論考試試題及答案
- 中國非遺項目與文化傳承試題及答案
- 護理專業相關法規試題及答案深度解讀
- 2025年語文考試備考中的常見問題試題及答案
- 護士考試的職業生涯規劃與試題答案
- 前沿知識執業藥師考試試題及答案
- GB/T 37078-2018出入口控制系統技術要求
- GB/T 20041.21-2008電纜管理用導管系統第21部分:剛性導管系統的特殊要求
- 高速鐵路關鍵技術匯總
- 2023年中小學體育教師招聘考試試題及答案三份
- 辦公室5S管理標準(圖片版)課件
- 《中醫學》消渴-課件
- 認識自我 悅納自我 課件- 高中生心理健康主題班會
- 科技成果-秸稈清潔制漿及其廢液肥料資源化利用技術
- 煙花爆竹事故應急處置
- 專利法全套ppt課件(完整版)
- 《馬克思主義與社會科學方法論》課件第四講 社會矛盾研究方法
評論
0/150
提交評論