?

數據庫系統優化測試的方法淺析

2014-10-21 14:22肖曉枝
數字化用戶 2014年20期
關鍵詞:數據庫系統性能測試性能優化

【摘 要】數據庫系統優化是數據庫商業化的前提,按用戶需求開發的數據庫系統不僅要滿足大數據量并發需求,還需要有穩定、安全、可靠的性能,采取科學的數據庫系統測試方法,可為優化提升數據庫性能提供數據支持。本文通過分析數據庫系統測試方法步驟,結合實例,為數據庫測試優化提供思路。

【關鍵詞】數據庫系統 性能優化 性能測試

一、引言

自上世紀四十年代世界第一臺計算機問世后,在短短幾十年的發展歷程中,計算機技術得到了快速發展,人們在享受數據庫技術便利的同時,也為數據庫系統存在的一系列隱患和問題所困擾,伴隨著數據庫系統技術的升級和發展,數據庫系統安全隱患也時時威脅著人們的“數據庫生活”安全。

從性能和安全意義上說,數據庫的性能是否穩定、可靠是衡量數據庫系統優劣的主要要素。數據庫系統開發建立后,能否滿足用戶的需求,能否實現用戶在使用、安全、可靠等要求和愿意,必須要進行數據庫系統的性能優化測試,以先期發現數據庫在使用功能上、交互使用上、數據維護管理上是否存在穩定性、可靠性、安全性方面的漏洞或缺陷,以較低的技術成本換取數據庫系統改進、完善的方法和技術措施,為數據庫系統轉變為“成品”投入用戶使用,提供技術支持。

二、關注的主要問題

作為數據庫系統測試,應把數據庫整個集成系統納入測試關注的范圍,要根據目標用戶對數據庫系統在性能和安全方面的要求來明確測試目的,確定測試規約,并對數據庫系統進行風險評估,關注數據庫系統運行性能和效果,以此確定測試類型。

(一)數據庫系統測試的任務目標

數據庫系統測試的主要任務和目標就是要在測試中了解系統運行的特征數據一致性、完整性、安全性等的綜合測試,發現各類性能要素瓶頸和功能極限,以滿足改進和優化數據庫系統的要求,達到目標用戶使用需求。

1.整體評估數據庫系統。根據數據庫設計方案要求,對數據庫系統性能進行系統性的測試,以衡量數據庫系統的整體性能,評價數據系統能否滿足用戶需求,同時,找出系統設計與用戶使用上存在的問題和差距,便于設計人員對系統進行修正設計和改進。

2.查找缺陷優化設計方案。根據系統設計要求,逐個條件進行臨界極限測試,以發現設計缺陷,并根據用戶對系統要求,對臨界狀態設計方案進行修改或重新設計,以期突破設計瓶頸,改進系統性能和功能。

3.提升和優化系統性能。通過系統性測試和反復驗證,掌握系統測試數據,并根據此數據,不斷進行調整和優化,以期系統達到最優運行狀態。

4.負載驗證穩定性和可靠性。通過一定時間、一定量的數據、用戶等模擬加載,從多角度驗證數據庫系統,有效評價系統運行的穩定性和可靠性,為系統提交用戶使用提供驗證數據參考。

(二)數據庫系統測試應把握的問題

1.掌握用戶需求。數據庫系統開發是在用戶需求的基礎上進行的,因此,該數據庫系統主要業務和次要業務是哪些、單位時間內訪問量是多少、并發量是多少等都構成了數據庫使用性能的重要要素,只有根據用戶需求進行測試,才能有效保證測試的結果和結論是否符合要求。

2.關注系統的臨界性能。所謂臨界就是系統的功能設計的有效限值。當負荷、負載達到臨界數值時,系統能夠正常運轉;當負荷、負載超過臨界數值時,系統隨著負載逐步增加其運行效率或速度逐步降低,但系統仍能保持正常運行,不至于出現系統崩潰和死機現象。此外,還應關注系統是否有隨著時間的延長存在性能衰減的現象。

3.預有準備應急措施。根據數據庫系統設計指標,制定測試應急措施和方案,在對系統進行全面測試過程中,能夠針對不同的意外情況有有效的應對措施和方案,測試系統在保持正常運行的條件下,對各種情況處置的可行性和有效性。

4.充分了解業務特性。在數據庫系統優化測試的實踐中,發生系統性能問題主要集中在中間件服務器、操作系統、數據庫等的參數設置上,應充分了解業務特點,以期在Oracle的內存分配和SGA分配上給予合理區分,否則就行對運行性能帶來極大影響。

5.充分預估數據量。數據庫系統開發是建立在用戶數據量不斷增長的基礎上,有些數據量甚至呈量級增長,這對數據庫的維護管理帶來挑戰。因此,應充分預估數據庫容量增長情況,通過反復多次測試,科學合理地確定內存的最優配置。

三、數據庫系統優化測試步驟

數據庫性能優化測試通常有強度測試、負載測試、壓力模型測試、多用戶并發測試、配置測試、大數據量測試、可靠性測試等等。測試步驟包括編制測試方案、構建測試集群環境、開發測試程序、執行測試和測試報告分析五個步驟。如下圖解。

(一)編制測試方案

首先是做好對數據庫系統文件資料的分析研究工作。結合業務模型和系統開發框架結構,深入分析研究數據庫系統介紹說明書、用戶使用手冊、拓撲結構圖、系統配置說明及服務器配置等等相關文件資料,對數據庫系統開發和關鍵數據有個較為系統的了解和掌握;其次是做好溝通交流進一步系統開發的目標、性質和用途。通過與用戶、系統開發技術人員的溝通,對測試中可能涉及到的相關問題和要素進行了解和確認;第三,編制測試方案和計劃,綜合所掌握的資料,結合測試所要達到的目標,擬定測試方法步驟,列出測試指標及關鍵點性能要求,完成測試方案計劃。

(二)構建測試集群環境

測試集群環境主要是指數據庫系統測試所必備的軟、硬件條件,包括待測試系統運行的操作系統、數據庫、中間件,以及用于壓力模型測試的控制臺、發起工具等測試系統,網絡環境的建立和網關、防火墻等應用軟件的安裝,同時,進行相關的基礎數據準備工作,以符合測試要求,保證 構造數據與實際工作環境數據相關聯的要求。在建立硬件、軟件應用系統和相關的數據準備后,再對環境可用性進行測試驗證。

(三)開發測試場景

測試場景是根據數據庫系統用戶業務實際運行環境進行模擬的程序腳本,以通過進行參數化編程、模擬和調試等工作,測試系統在實際運行環境下性能運行情況,發現實際運行與設計性能偏差數據。

(四)執行測試

根據測試方案,在一定的測試環境下,按照設計測試用例運行測試程序,執行系統測試條件。

(五)測試報告分析

按測試方案完成測試后,收集整理測試數據及相關監測記錄數據,并對測試運行中系統出現的問題進行對比分析,研究被測試系統存在的性能和問題。

1.理定缺陷和問題。系統的性能問題一般集中在操作系統配置、數據庫配置、應用程序代碼以及網絡設置和條件等,應根據測試數據或偶發情況分析,厘清確定缺陷或問題的性質。

2.問題原因分析。根據查找系統缺陷或問題,進行延伸分析其相互關聯關系及影響區域和范圍,以針對性地分析出現問題的根源。

3.擬定優化方案。根據系統優化目標要求,結合測試中發現的問題和分析的原因對系統優化的影響,擬出優化方案。優化方案應重點關注資源利用率(對不同系統資源的使用程度,是我們測試和分析瓶頸的主要對象)、吞吐量(對不同系統資源的使用程度,是我們測試和分析瓶頸的主要對象)、并發(指許多的用戶同時做同樣的一個操作。通過并發操作,我們可以看到系統是否穩定,并發現系統設計中的問題)和請求響應時間(指從客戶端發出一個請求,到接收到服務器端返回的結果之間的時間)等關鍵指標。

4.測試優化方案。對原測試環境作出相應調整,并按優化方案要求,對系統進行基準測試,即根據性能基準設計測試程序要求搭建測試環境,完成性能測試,比較測試結果與相同測試程序在相同系統或另外系統上的運行結果。

5.結果分析。優化方案測試后,對比分析測試結果,了解優化方案與預定目標間的結果偏差、問題或缺陷是否得到有效解決、系統在局部或整體上的優化程度等,對優化效果進行評估,以確定是否再進一步優化。

6.驗證測試。在優化的基礎上,進行驗證測試,以驗證系統優化或局部優化的性能和效果。

四、運用LoadRunner實現壓力測試實例

運用LoadRunner 實施壓力測試是一種較為實用的方法。LoadRunner是一種預測系統行為和性能的工業標準級負載測試工具。通過模擬呈數量級用戶實施并發負載及實時性能監測,來確認和查找系統性能問題,能夠對整個用戶部門(或企業)架構進行測試。運用該方法測試,可有效縮短測試時間、優化系統性能,加快應用系統發布周期。

LoadRunner可在運行測試中監控系統及Web服務器等資源運行數據,同步分析響應時間,對系統性能瓶頸分析和定位具有一定的幫助。其負載測試流程有擬制計劃、創建腳本、定義場景、執行場景、執行監視、分析結果等五個階段,運行中,可監視DataBase Server、Web Server等服務器的運行,并通過添加性能計數器來實現監視場景。

五、數據庫系統優化途徑

在系統測試中,結合結果報表分析,應著重關注并發用戶數量、請求響應時間、事務響應時間、TPS、吞吐率、資源利用率、點擊率等關鍵指標,根據關鍵指標數據所反映出的問題進行改進,找到優化途徑。

1.數據庫數據過量調用問題。因應用程序反復調用數據庫數據,一定程度上影響系統運行性能,調優時應從數據庫中大量取得所需要的數據。

2.數據庫連接池資源泄漏問題。數據庫連接池因存在缺陷而導致數據資源的泄漏,如程序代碼沒有close()連接、缺少finally塊,或close()無法運行等,應認真分析程序代碼,查找程序編制中的缺陷和漏洞。在調優時應注意兩個問題:

(1)數據庫連接管理影響到應用程序伸縮性和健壯性等性能指標。負責分配、管理和釋放數據庫連接數的據庫連接池數=每個線程需要連接數據庫的平均數×線程池數×1.1(即增加10%的峰值負載)。一般情況下每個線程需要連接數據庫的平均數是1。

(2)在最初池大小設置時,應考慮與最大池大小相等。

3.SQL及其索引問題。應關注SQL語句及其索引或鎖定屬性問題,對SQL語句及其索引進行優化調整,可有效提高系統性能。

六、結束語

數據庫系統的優化測試是一項復雜的技術工作,需要通過較低的成本來模擬真實環境,測試系統正式上線后的運行性能,并根據測試結果按預定性能目標進行優化,以保證用戶軟件系統達到預定的性能指標。由于系統測試關注的內容較多,技術繁瑣,優化后的系統性能是否滿足用戶需求,是一個相對較長的運行實踐過程,需要有持續的維護和關注,不斷積累經驗,才能更好地解決系統運行中可能出現的新情況、新問題。

參考文獻:

[1] 董建彬, 田悅新, 馬艷玲. 數據庫系統測試方法與技術探討[J].中國民航飛行學院學報, 2008(2).

[2] 姚競英.數據庫性能測試的研究[J].電腦知識與技術. 2011(10).

[3] 陳紹英,劉建華,金成姬.LoadRunner 性能測試實戰[M].北京:電子工業出版社,2007.

[4] 于涌. 軟件性能測試與LoadRunner實戰[M].北京:人民郵電出版社,2008.

[5] 張亞. 數據庫系統的性能測試探討[M]北京。電子工業出版社,2014.

作者簡介:

肖曉枝,女(1973.05.03~),籍貫:安徽,學歷:本科,職稱:工程師,研究方向:數據庫管理,工作單位:福建省產品質量檢驗研究院。

猜你喜歡
數據庫系統性能測試性能優化
計算機數據庫系統在信息管理中的應用
Hadoop性能測試自動化研究
SQL Server數據庫性能優化的幾點分析
對分布式數據庫系統的安全分析
Web應用的前端性能優化
基于眾包的數據庫信息查詢處理方法
關于Java軟件的性能測試分析
Oracle數據庫性能調整與優化分析
數據庫系統在計算機體系結構中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合