




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、高級性能測試 1課程內容介紹 測試策略制定測試結果指標分析測試典型案例分析 測試技術討論測試工具的使用技巧2測試策略制定概念測試計劃測試流程包括哪些步驟測試要達到什么目的選擇什么協(xié)議進行測試如何編寫一個完整的測試方案 測試指標包括哪些內容自動化負載壓力測試策略3測試結果指標分析客戶端負載壓力指標 服務器資源使用指標網絡監(jiān)控指標4測試典型案例分析系統(tǒng)故障定位與分析數(shù)據庫服務器典型性能調優(yōu)與評估Oracle數(shù)據庫性能調優(yōu)案例測試經驗交流5測試工具的使用技巧負載壓力測試工具:LoadRunner8.0功能回歸測試工具:WinRunner7.6測試管理工具:TestDirector8 .06性能測試
2、系統(tǒng)的性能是一個很大的概念,覆蓋面非常廣泛,對一個軟件系統(tǒng)而言包括執(zhí)行效率、資源占用、穩(wěn)定性、安全性、兼容性、可擴展性、可靠性等等,我們這里重點討論的負載壓力是系統(tǒng)性能的一個重要方面。 性能測試用來保證產品發(fā)布后系統(tǒng)的性能滿足用戶需求。性能測試在軟件質量保證中起重要作用。 7負載測試負載測試是確定在各種工作負載下系統(tǒng)的性能,目標是測試當負載逐漸增加時,系統(tǒng)組成部分的相應輸出項,例如通過量、響應時間、CPU負載、內存使用等如何決定系統(tǒng)的性能,例如穩(wěn)定性和響應等。負載測試通常描述一種特定類型的壓力測試,即增加用戶數(shù)量以對應用程序進行壓力測試。8壓力測試 壓力測試通過確定一個系統(tǒng)的瓶頸或者不能接收的
3、性能點,來獲得系統(tǒng)能提供的最大的服務級別的測試。通俗地講,壓力測試是為了發(fā)現(xiàn)在什么條件下您的應用程序的性能會變得不可接受。9負載壓力測試負載壓力測試是性能測試的重要組成部分,負載壓力測試包括:并發(fā)性能測試(重點)疲勞強度測試大數(shù)據量測試 10負載壓力測試11負載壓力測試并發(fā)性能測試 考察客戶端應用的性能,測試的入口是客戶端并發(fā)性能測試的過程,是一個負載測試和壓力測試的過程。即逐漸增加并發(fā)虛擬用戶數(shù)負載,直到系統(tǒng)的瓶頸或者不能接收的性能點,通過綜合分析交易執(zhí)行指標、資源監(jiān)控指標等來確定系統(tǒng)并發(fā)性能的過程。并發(fā)性能測試是負載壓力測試中的重要內容。 12負載壓力測試疲勞強度測試 通常是采用系統(tǒng)穩(wěn)定運
4、行情況下能夠支持的最大并發(fā)用戶數(shù)或 者日常運行用戶數(shù),持續(xù)執(zhí)行一段時間業(yè)務,通過綜合分析交易執(zhí)行指標和資源監(jiān)控指標來確定系統(tǒng)處理最大工作量強度性能的過程。 疲勞強度測試案例制定的原則是保證系統(tǒng)長期不間斷運行的業(yè)務量,并且應該盡量去滿足該條件。 13負載壓力測試大數(shù)據量測試 大數(shù)據量測試的兩種類型 獨立的數(shù)據量測試 針對某些系統(tǒng)存儲、傳輸、統(tǒng)計、查詢等業(yè)務進行大 數(shù)據量測試 綜合數(shù)據量測試 和壓力性能測試、負載性能測試、并發(fā)性能測試、疲勞性能測試相結合的綜合測試方案 14測試計劃 分析應用程序 定義測試目標 計劃方案實施檢查測試目標 15制定測試計劃的目的構建能夠精確地模擬您的工作環(huán)境的測試方案
5、。 了解測試需要的資源。 以可度量的指標定義測試成功條件。 16分析應用程序確定系統(tǒng)組件描述系統(tǒng)配置 分析使用模型 任務分布 17確定系統(tǒng)組件客戶機、網絡、中間件和服務器 18描述系統(tǒng)配置連接到系統(tǒng)的用戶數(shù)應用程序客戶端計算機的配置情況(硬件、內存、操作系統(tǒng)、軟件、開發(fā)工具等)使用的數(shù)據庫和Web 服務器的類型(硬件、數(shù)據庫類型、操作系統(tǒng)、文件服務器等)服務器與應用程序客戶端之間的通信方式前端客戶端與后端服務器之間的中間件配置和應用程序服務器可能影響響應時間的其他網絡組件(調制解調器等)19分析使用模型考慮哪些用戶使用系統(tǒng)每種類型用戶的數(shù)量每個用戶的典型任務 20任務分布確定數(shù)據庫活動峰值期的
6、發(fā)生時間負載峰值期間的典型活動 21定義測試目標22定義測試目標以可度量的指標制定目標確定測試的時間 23確定測試的時間24計劃方案實施定義性能度量的范圍定義Vuser活動 選擇Vuser 選擇測試硬件和軟件25定義性能度量的范圍度量應用程序中不同點的響應時間。根據測試目標確定在哪里運行虛擬用戶運行哪些虛擬用戶26應用程序中不同點的響應時間度量端到端的響應時間:27應用程序中不同點的響應時間度量網絡和服務器響應時間: 28應用程序中不同點的響應時間度量GUI 響應時間:GUI 響應時間= 端到端響應時間- 網絡和服務器響應時間 29應用程序中不同點的響應時間度量服務器響應時間:30應用程序中不
7、同點的響應時間度量中間件到服務器的響應時間:31選擇Vuser32選擇測試硬件和軟件硬件和軟件應該具有強大的性能和足夠快的運行速度,以模擬所需數(shù)量的虛擬用戶 。33檢查測試目標度量最終用戶響應時間 定義最優(yōu)的硬件配置 檢查可靠性 確定瓶頸 度量系統(tǒng)容量 34定義最優(yōu)的硬件配置舉例例如,您可以設置三種不同的服務器配置,并針對各個配置運行相同的測試,以確定性能上的差異:. 配置1:200MHz、64MB RAM. 配置2:200MHz、128MB RAM. 配置3:266MHz、128MB RAM35檢查可靠性舉例確定系統(tǒng)在連續(xù)的高工作負載下的穩(wěn)定性級別。強制系統(tǒng)在短時間內處理大量任務,以模擬系統(tǒng)
8、在數(shù)周或數(shù)月的時間內通常會遇到的活動類型。36確定瓶頸舉例您可以運行測試以確定系統(tǒng)的瓶頸,并確定哪些因素導致性能下降,例如,文件鎖定、資源爭用和網絡過載。37度量系統(tǒng)容量舉例查看現(xiàn)有系統(tǒng)中性能與負載間的關系,并確定出現(xiàn)響應時間顯著延長的位置 “拐點”??梢源_定是否需要增加資源以支持額外的用戶。38測試流程步驟測試需求分析 測試案例制定 測試環(huán)境、工具、數(shù)據準備 測試腳本錄制、編寫與調試負載壓力場景制定 測試執(zhí)行 結果分析與定位問題 測試報告與測試評估 39測試目的在真實環(huán)境下檢測系統(tǒng)性能,評估系統(tǒng)性能以及服務等級的滿足情況預見系統(tǒng)負載壓力承受力,在應用實際部署之前,評估系統(tǒng)性能 幫助軟件廠商或
9、用戶分析系統(tǒng)瓶頸、優(yōu)化系統(tǒng) 40測試目的實現(xiàn)目的的測試方法: 性能檢測 性能調優(yōu) 41性能檢測在真實生產環(huán)境下,檢測系統(tǒng)性能,評估并報告整個系統(tǒng)的性能和健壯情況檢查服務等級的滿足情況對系統(tǒng)的未來容量作出預測和規(guī)劃 42性能調優(yōu)查找系統(tǒng)瓶頸的根本原因評估性能調整的效果在測試環(huán)境下再現(xiàn)性能問題 43選擇測試協(xié)議客戶端與直接壓力承受的服務器之間的通訊協(xié)議是選擇測試協(xié)議的唯一標準 44測試協(xié)議 Client/Server: MS SQL, ODBC, Oracle (2-tier), DB2 CLI, Sybase Ctlib, Sybase Dblib,infomix,Windows Sockets
10、及DNS定制: C templates, Visual Basic templates, Java templates, Javascript 及 VBscript. 分布式組件: COM/DCOM, Corba-Java, 及Rmi -Java.E-business: FTP, LDAP, Palm, SOAP, Web (HTTP/HTML), 及the dual Web/Winsocket.Enterprise Java Beans: EJB Testing及Rmi-Java.Legacy: Terminal Emulation (RTE).Mailing Services: Inter
11、net Messaging (IMAP), MS Exchange (MAPI), POP3, 及SMTP.Middleware: Jacada及Tuxedo (6, 7).Streaming: MediaPlayer及RealPlayer. Wireless: i-Mode, VoiceXML, 及WAP45編寫一個完整的測試方案 應用在客戶端性能的測試 應用在網絡上性能的測試 應用在服務器上性能的測試一個測試方案的例子一個測試計劃的例子46測試指標客戶端交易處理性能指標 服務器資源監(jiān)控,例如: UNIX數(shù)據庫資源監(jiān)控,例如: OracleWeb服務器監(jiān)控,例如: Apache中間件監(jiān)控,例
12、如: TUXEDO等等47自動化負載壓力測試利用或開發(fā)負載壓力測試的自動化測試方法,包括:程序、工具、流程等等。48自動化負載壓力測試優(yōu)勢自動化測試優(yōu)勢分析快速比手工操作絕對快可靠每一次運行精確地執(zhí)行相同的操作,可以排除手工操作錯誤可重復測試相同操作重復執(zhí)行時軟件如何響應可編程的可以編程實現(xiàn)得到應用系統(tǒng)隱藏信息的復雜測試綜合測試可以實現(xiàn)覆蓋應用系統(tǒng)每個特征的一套綜合測試方案可重用的針對應用系統(tǒng)的不同版本,測試腳本可重復使用,即使用戶界面發(fā)生變化49選擇自動化負載壓力測試方法利用自動化負載壓力測試工具 開放資源(OpenSource)測試 自主開發(fā)代碼測試 50自動化負載壓力測試概念通過在一臺或
13、幾臺PC機上模擬成百或上千的虛擬用戶同時執(zhí)行業(yè)務的情景,對應用程序進行測試,通過可重復的、真實的測試能夠徹底地度量應用的性能,確定問題所在。工程項目實踐證明,其測試結果與實際情況完全符合。51自動化負載壓力測試實現(xiàn)機制自動負載測試52自動化負載壓力測試工具LoadRunner美國Mercury Interactive公司QALoad美國Compuware(康博)公司Rational Robot 美國IBM公司SILK PERFORMER V 美國Segue 公司Benchmark Factory美國Quest軟件公司WAS美國Mcrosoft 公司53自動化負載壓力測試工具自動化負載壓力測試工
14、具對比54自動化負載壓力測試工具選擇依據模擬您的客戶機運行多個模擬的客戶機 腳本化執(zhí)行并能編輯腳本 支持會話 可配置的用戶數(shù)量 報告成功、錯誤和失敗 55自動化負載壓力測試工具缺陷缺乏功能點的校驗對有些控件支持得不好不能達到真實模擬負載腳本的支持不夠靈活報錯定位不夠詳細56自動化負載壓力測試工具盲點在負載測試中,不進行功能校驗,就是當功能錯誤發(fā)生時,測試工具不能夠記錄產生的功能性錯誤,這就忽略了負載壓力情況下的功能不穩(wěn)定問題。在負載壓力測試過程中記錄所有虛擬用戶的操作及服務器的響應是當前負載壓力測試技術發(fā)展的最大挑戰(zhàn)。但測試過程中的附加記錄會導致資源消耗、操作行為增加以及產生大量日志等問題。
15、57開放資源(OpenSource)測試 開放系統(tǒng)測試體系OpenSTA ) TestMaker() Apache JMeter () 58開發(fā)測試工具舉例Web服務器通用性能測試系統(tǒng)的設計與實現(xiàn)實際系統(tǒng)由四部分組成:模板文件數(shù)據文件性能測試程序結果處理程序59開發(fā)測試工具舉例系統(tǒng)結構示意圖60開發(fā)測試工具舉例主流程圖61開發(fā)測試工具舉例通用應用系統(tǒng)性能評測環(huán)境設計62開發(fā)測試工具舉例通用應用系統(tǒng)性能評測環(huán)境設計63開發(fā)測試工具舉例通用應用系統(tǒng)性能評測環(huán)境設計接口名稱功能接口函數(shù)原型(C語言描述)事務處理邏輯類型此接口提供應用系統(tǒng)相關的事務類型ID,通常情況下應用系統(tǒng)由多種事務組成,評測系統(tǒng)應
16、該能夠區(qū)分它們Int Perf_GetTransactionID(void);接口初始化初始化應用系統(tǒng)。諸如創(chuàng)建數(shù)據庫連接等操作在此接口中進行int Perf_InitLib(void);執(zhí)行事務處理實際事務處理接口,事務執(zhí)行的起止時間和執(zhí)行狀態(tài)在此記錄int Perf_DoTransaction(void* pBuffer,int nBufferSize);接口資源釋放釋放應用系統(tǒng)資源。諸如關閉數(shù)據庫連接等操作在此函數(shù)int Perf_FreeLib(void);64開發(fā)測試工具舉例通用應用系統(tǒng)性能評測環(huán)境設計操作系統(tǒng)開發(fā)環(huán)境Win32(WindowsNT4/2000/XP)Visual C
17、+ 6.0 SP5SUN Solaris8(x86)Forte C+ 6 Update 2Linux(x86 kernel 2.4.7 glibc 2.2.4)KDevelop 2.065測試結果指標分析客戶端負載壓力指標為了完成一個任務,用戶對應用程序執(zhí)行的一組操作,例如登陸一個Web站點、搜索一個飛機票信息、在網上買一本書等等。虛擬并發(fā)用戶數(shù)(Total Virtual Users)交易響應時間(Response Time) 每分鐘交易數(shù)(Trans Rate)吞吐量圖 (ThroughOut)66測試結果指標分析客戶端負載壓力指標-交易處理指標. 平均事務響應時間圖. 每秒事務數(shù)圖. 每
18、秒事務總數(shù). 事務摘要圖. 事務性能摘要圖. 事務響應時間(負載下)圖. 事務響應時間(百分比)圖. 事務響應時間(分布)圖67測試結果指標分析客戶端負載壓力指標-Web請求指標. 每秒點擊次數(shù)圖. 點擊次數(shù)摘要圖. 吞吐量圖. 吞吐量摘要圖. HTTP 狀態(tài)代碼摘要圖. 每秒HTTP 響應數(shù)圖. 每秒下載頁面數(shù)圖. 每秒重試次數(shù)圖. 重試次數(shù)摘要圖. 連接數(shù)圖. 每秒連接數(shù)圖. 每秒SSL 連接數(shù)圖68測試結果指標分析客戶端負載壓力指標-Web頁面組件指標. 激活網頁細分圖. 頁面組件細分圖. 頁面組件細分(隨時間變化)圖. 頁面下載時間細分圖. 頁面下載時間細分(隨時間變化)圖. 第一次緩
19、沖細分時間圖. 第一次緩沖時間細分(隨時間變化)圖. 已下載組件大小圖69測試結果指標分析服務器資源使用指標-UNIX70測試結果指標分析服務器資源使用指標-Windows2000 Server71測試結果指標分析服務器資源使用指標-Windows2000 Server(續(xù))72測試結果指標分析服務器資源使用指標-Windows2000 Server(續(xù))看一個例子73測試結果指標分析服務器資源使用指標-數(shù)據庫SQLServer74測試結果指標分析服務器資源使用指標-中間件Tuxedo75測試結果指標分析網絡監(jiān)控指標:吞吐量容量(信道容量或帶寬)利用率最優(yōu)利用率可提供負載有效率延遲延遲變化量響
20、應時間76測試典型案例分析系統(tǒng)故障定位與分析最難的問題77系統(tǒng)瓶頸分析舉例經驗舉例1交易的響應時間如果很長,遠遠超過系統(tǒng)性能需求,表示耗費CPU的數(shù)據庫操作,例如排序,執(zhí)行aggregate functions(例如sum、min、max、count)等較多,可考慮是否有索引以及索引建立的是否合理;盡量使用簡單的表聯(lián)接;水平分割大表格等方法來降低該值。 78系統(tǒng)瓶頸分析舉例經驗舉例2分段排除錯誤。測試工具可以模擬不同的虛擬用戶來單獨訪問Web服務器、應用服務器和數(shù)據庫服務器,這樣,就可以在Web端測出的響應時間減去以上各個分段測出的時間就可以知道瓶頸在哪并著手調優(yōu)。 79系統(tǒng)瓶頸分析舉例經驗舉
21、例3UNIX資源監(jiān)控(NT操作系統(tǒng)同理)中指標內存頁交換速率(Paging rate),如果該值偶爾走高,表明當時有線程競爭內存。如果持續(xù)很高,則內存可能是瓶頸。也可能是內存訪問命中率低?!癝 rate”和“S rate”也有類似的解釋。 80系統(tǒng)瓶頸分析舉例經驗舉例4UNIX資源監(jiān)控(NT操作系統(tǒng)同理)中指標CPU占用率(CPU utilization),如果該值持續(xù)超過95%,表明瓶頸是CPU??梢钥紤]增加一個處理器或換一個更快的處理器 。合理使用的范圍在60%至70%。81系統(tǒng)瓶頸分析舉例經驗舉例5UNIX資源監(jiān)控(NT操作系統(tǒng)同理)中指標磁盤交換率(Disk rate),如果該參數(shù)值一
22、直很高,表明I/O有問題??煽紤]更換更快的硬盤系統(tǒng)、重新部署業(yè)務邏輯等,另外設置Tempdb in RAM,減低max async IO,max lazy writer IO等措施都會降低該值。 82系統(tǒng)瓶頸分析舉例經驗舉例6Tuxedo資源監(jiān)控中指標隊列中的字節(jié)數(shù)(Bytes on queue),隊列長度應不超過磁盤數(shù)的1.52倍。要提高性能,可增加磁盤。注意:一個Raid Disk實際有多個磁盤。83系統(tǒng)瓶頸分析舉例經驗舉例7SQLServer資源監(jiān)控中指標緩存點擊率(Cache Hit Ratio),該值越高越好。如果持續(xù)低于80%,應考慮增加內存。 注意該參數(shù)值是從SQL Server
23、啟動后,就一直累加記數(shù),所以運行經過一段時間后,該值將不能反映系統(tǒng)當前值。 84優(yōu)化調整設置 CPU問題:考慮使用更高級的CPU代替目前的CPU對于多CPU,考慮CPU之間的負載分配考慮在其它體系上設計系統(tǒng),例如增加前置機、設置并行服務器等。85優(yōu)化調整設置 內存和高速緩存內存的優(yōu)化包括操作系統(tǒng)、數(shù)據庫、應用程序的內存優(yōu)化。過多的分頁與交換可能降低系統(tǒng)的性能內存分配也是影響系統(tǒng)性能的主要原因保證保留列表具有較大的鄰接內存塊調整數(shù)據塊緩沖區(qū)大?。ㄓ脭?shù)據塊的個數(shù)表示)是一個重要內容將最頻繁使用的數(shù)據保存在存儲區(qū)中86優(yōu)化調整設置 磁盤(I/O)資源問題磁盤讀寫進度對數(shù)據庫系統(tǒng)是至關重要的,數(shù)據庫對
24、象在物理設備上的合理分布能改善性能磁盤鏡像會減慢磁盤寫的速度通過把日志和數(shù)據庫對象分布在獨立的設備上可以提高系統(tǒng)的性能把不同的數(shù)據庫放在不同的硬盤上,可以提高讀寫速度。經常把數(shù)據庫、回滾段、日志放在不同的設備上把表放在一塊硬盤上,把非簇的索引放在另一塊硬盤上,保證物理讀寫更快87優(yōu)化調整設置 調整配置參數(shù)包括操作系統(tǒng)和數(shù)據庫的參數(shù)配置并行操作資源限制的參數(shù)(并發(fā)用戶的數(shù)目、會話數(shù))影響資源開銷的參數(shù)與I/O有關的參數(shù)88優(yōu)化調整設置 優(yōu)化應用系統(tǒng)網絡設置可以通過數(shù)組接口來減少網絡呼叫。不是一次提取一行,而是在單個往來往返中提取10行,這樣做效率較高調整會話數(shù)據單元的緩沖區(qū)大小共享服務進程比專用
25、服務進程提供較好的性能89故障定位與分析 一個測試實例90測試典型案例分析 數(shù)據庫服務器典型性能調優(yōu)與評估91數(shù)據庫服務器典型性能問題數(shù)據庫服務器性能問題及原因分析 單一類型事務響應時間過長 數(shù)據庫服務器負載 糟糕的數(shù)據庫設計 事務粒度過大 批任務對普通用戶性能的影響 并發(fā)處理能力差 鎖沖突嚴重 資源鎖定造成的數(shù)據庫事務超時 數(shù)據庫死鎖 92數(shù)據庫服務器典型性能問題數(shù)據庫性能問題的一般解決辦法 監(jiān)視性能相關數(shù)據;定位資源占用較大的事務并做出必要的優(yōu)化或調整;定位鎖沖突,修改鎖沖突發(fā)生嚴重的應用邏輯;對規(guī)模較大的數(shù)據或者無法通過一般優(yōu)化解決的鎖沖突進行分布。93Oracle與提高性能有關的特性
26、索引并行執(zhí)行簇與散列簇分區(qū)多線程服務器同時讀取多塊數(shù)據 94Oracle配置的關鍵參數(shù) MAX_DSPATCHERS:這個參數(shù)指定了系統(tǒng)允許同時進行的調度進程的最大數(shù)量。MAX_SHARED_SERVERS:這個參數(shù)指定了系統(tǒng)允許同時進行的共享服務器進程的最大數(shù)量。如果系統(tǒng)中出現(xiàn)的人為死鎖過于頻繁,那么管理員應該增大這個參數(shù)的值。PARALLEL_ADAPTIVE_MULTI_USER:當這個參數(shù)的值為TRUE時,系統(tǒng)將啟動一個能提高使用并行執(zhí)行的多用戶系統(tǒng)性能的自適應算法。這個算法將根據查詢開始時的系統(tǒng)負載自動降低查詢請求的并行度。95Oracle配置的關鍵參數(shù) PARLLEL_MIN_SE
27、RVERS:這個參數(shù)指定了實例并行執(zhí)行進程的最小數(shù)量。其值就是實例啟動時Oracle創(chuàng)建的并行執(zhí)行進程數(shù)。PARLLEL_THREADS_PER_CPU:這個參數(shù)指定了實例默認的并行度和并行自適應以及負載平衡算法。它指明了并行執(zhí)行過程中一個CPU能處理的進程或線程數(shù)。PARTITION_VIEW_ENABLED:這個參數(shù)指定了優(yōu)化器是否使用分區(qū)視圖。Oracle推薦用戶使用分區(qū)表(這是在Oracle8之后引入的)而不是分區(qū)視圖。分區(qū)視圖只是為了提供Oracle的后向兼容性。REVOVERY_PARALLELISM:這個參數(shù)指定了恢復數(shù)據庫系統(tǒng)時使用的進程數(shù)。 96Oracle的索引 索引和降低
28、系統(tǒng)處理的數(shù)據量 索引和更新 在字段選擇性很低的情況下適用索引97Oracle的并行執(zhí)行特性 RDBMS的絕大多數(shù)操作都可分為以下3類:被CPU限制的操作:這類操作的速度和單CPU運行速度一樣。通過并行化操作,多個CPU可并行處理系統(tǒng)負載,因此可以更快完成該操作。被I/O限制的操作:這類操作花了絕大部分時間等待系統(tǒng)完成I/O操作。當系統(tǒng)中同時出現(xiàn)多個I/O請求時,絕大多數(shù)RAID控制器將很好工作。另外,當一個線程需要等待完成I/O操作時,可充分利用CPU來處理另一線程的CPU部分。被競爭限制的操作:并行處理不能改善由資源競爭所限制的操作。98Oracle的并行執(zhí)行特性 應當首先根據如下一些因素
29、考慮并行度 :計算機的CPU能力:CPU的數(shù)量和能力將影響系統(tǒng)能運行的查詢進程數(shù)量。系統(tǒng)處理大量進程的能力:一些操作系統(tǒng)能處理很多并發(fā)進程,而另一些操作系統(tǒng)則沒有這方面的能力。系統(tǒng)負載:如果系統(tǒng)現(xiàn)在的運行已經達到了極限,那么對并行度的調整不會有太大效果。如果系統(tǒng)運行已達其能力極限的90%,那么太多的查詢進程將使系統(tǒng)不堪重負。系統(tǒng)處理的查詢數(shù)量:如果系統(tǒng)的大部分操作是更新操作,但仍有少量的重要查詢存在,那么開發(fā)人員可能希望系統(tǒng)運行多個查詢進程。系統(tǒng)的I/O能力:如果磁盤上的數(shù)據是分片或是使用磁盤陣列存儲的,那么系統(tǒng)能夠處理多個并行查詢。操作類型:系統(tǒng)是否需要處理很多的全表掃描或排序?并行查詢服務
30、器非常有助于這類操作。99Oracle的并行執(zhí)行特性 并行查詢處理 并行創(chuàng)建索引 并行加載數(shù)據 并行恢復 100Oracle的并行執(zhí)行特性 關于并行度的一些建議 :諸如排序之類的需要大量CPU資源的操作應當采用較低的并行度。其原因是這類受限于CPU的操作已經充分利用了CPU,而不需等待系統(tǒng)的I/O操作。諸如全表掃描之類的需要大量磁盤I/O的操作應當采用較高的并行度。需要等待磁盤I/O的操作越多,系統(tǒng)就越能受益于并行操作。如果系統(tǒng)中有大量的并發(fā)進程,那么應當采用較低的并行度。因為太多的進程將使系統(tǒng)不堪重負。 101Oracle的簇與散列簇 有利 不利102Oracle的同時讀取多塊數(shù)據 當系統(tǒng)執(zhí)
31、行表掃描時,Oracle具備同時讀取多個數(shù)據塊的能力,這種能力提高了系統(tǒng)的I/O速度。通過同時讀取多塊數(shù)據,Oracle能夠從磁盤上讀取更大的數(shù)據塊,從而避免了對磁盤上數(shù)據進行搜索的操作。通過降低磁盤搜索和讀取更大的數(shù)據塊,可以降低系統(tǒng)的I/O開銷和CPU開銷。 103Oracle的分區(qū) 分區(qū)方案:Range Partitioning:這種方案根據數(shù)據的范圍,比如月、年等等對表中的數(shù)據進行分區(qū)。List Partitioning:這種方案和Range Partitioning分區(qū)方案很類似,但這種方案是按照數(shù)據的值而不是數(shù)據的范圍來進行分區(qū)劃分的。Hash Partitioning:這種分區(qū)方
32、案使用散列函數(shù)來實現(xiàn)對數(shù)據的自動分區(qū)。Sub- Partitioning:這種方法就是開發(fā)人員熟悉的復合分區(qū)方法。這種方法允許開發(fā)人員同時使用多種分區(qū)方案。104Oracle的分區(qū) 分區(qū)有以下幾方面的好處 :對能被分區(qū)的大尺寸表進行掃描時,分區(qū)可降低I/O操作和CPU的使用率。可在分區(qū)的層次上而不是表的層次上加載數(shù)據。能以刪除分區(qū)的方式刪除數(shù)據,而不必使用SELECT語句來刪除大量數(shù)據。對用戶和應用程序而言,分區(qū)是完全透明的。可在分區(qū)層次上而不是在表層次上維護數(shù)據。105Oracle的多線程服務器 用戶可通過專用服務器進程連接到Oracle實例,也可以通過多線程服務器進程連接到Oracle實例
33、。因為每一個專用服務器進程都將占用大量內存資源和系統(tǒng)資源,所以有必要對多用戶連接采用多線程服務器進程。 多線程服務器進程允許多個用戶使用一定數(shù)量的共享服務器進程。共享服務器進程使用共享緩沖池對用戶請求進行排隊并返回數(shù)據,從而大大減少CPU和內存的使用。 106測試典型案例分析硬件配置與系統(tǒng)性能測試實例107測試典型案例分析服務器集群與系統(tǒng)性能測試實例108案例測試經驗交流負載均衡與系統(tǒng)性能測試實例109案例測試經驗交流負載均衡基礎知識負載均衡策略:靜態(tài)方式、動態(tài)方式:負載均衡針對的應用負載均衡記錄文件用戶表回話保持概念回話保持方式負載均衡器布置110測試典型案例分析案例測試經驗交流111案例測
34、試經驗交流一個文檔、郵件接收與發(fā)送系統(tǒng):業(yè)務“下傳文檔”錄制不全,本地保存與打開不能夠錄制上。Weblogic監(jiān)控需要做的準備工作是系統(tǒng)不能登陸,IE問題Windows 2000 Server的資源監(jiān)控把握3個重點Unix資源監(jiān)控,如果LoadRunner無法監(jiān)控 7.5的license加到7.8上,出現(xiàn)監(jiān)控counter全部丟失的現(xiàn)象在結果文件analysis中直接可以得到excel格式的結果112案例測試經驗交流一個多媒體處理系統(tǒng):出現(xiàn)業(yè)務“登陸”無法并發(fā)的現(xiàn)象 “登陸”無法并發(fā)并不影響后面交易的并發(fā)執(zhí)行采用correlation技術實現(xiàn)壓力對于“查詢”操作驗證檢查結果是否正確。QALoa
35、d和LoadRunner所錄的腳本不一致QALoad所錄腳本并發(fā),交易都成功,但報400及500錯誤113案例測試經驗交流一個打掃碼信息處理系統(tǒng):Winsock連接要考慮是否有必要做并發(fā)性能測試?還是需要做疲勞測試?默認的分析中thinktime時間沒有去掉加壓前系統(tǒng)的性能指標應該關注,否則沒有參考依據,例如CPU、內存、Disk I/O等。指標Disk Time在磁盤陣列時失效,其值大于100,應注意監(jiān)控“idle time”指標。114案例測試經驗交流一個工作流系統(tǒng)的選型測試:測試數(shù)據的準備集群的驗證115案例測試經驗交流一個稅務測試:1. 關閉視圖降低系統(tǒng)的交易平均響應時間;2. 并發(fā)測
36、試過程中,當大規(guī)模并發(fā)時候,出現(xiàn)服務器拒絕連接的情況,connection refused(10061),被測試系統(tǒng)為WEBLOGIC應用服務器,調整weblogic配置參數(shù)backlog的值,可以克服該問題;3. 索引使用不當;4. 代理的吞吐能力影響并發(fā)用戶數(shù)116案例測試經驗交流一個IC卡處理系統(tǒng):中間件客戶端連接數(shù)隊列阻塞問題數(shù)據庫優(yōu)化選項問題負載均衡問題117案例測試經驗交流工具不能支持的被測對象:Oracle FormSMTPSSLNC118案例測試經驗交流負載壓力性能指標的區(qū)別(CPU):LoadRunnerVmstat命令Iostat命令Mpstat命令Top命令119案例測試
37、經驗交流不同的工具監(jiān)控性能指標(CPU):最大并發(fā)用戶數(shù)最大連接數(shù)最大在線用戶數(shù)最大注冊用戶數(shù)120測試案例介紹并發(fā)性能測試幾個應用實例 實例1:計費帳務系統(tǒng)V3.0 測試類型:并發(fā)、疲勞 系統(tǒng)運行模式:三層結構中間件TUXEDO、數(shù)據庫服務器操作系統(tǒng)UNIX、數(shù)據庫Oracle 監(jiān)測的測試指標包括:交易處理性能、UNIX資源、TUXEDO資源 并發(fā)用戶數(shù):50 測試工具: LoadRunner7.5.1 解決的問題:業(yè)務執(zhí)行平均響應時間在100秒左右,經過調優(yōu)后,平均響應時間降為10秒 例圖如下121測試案例介紹銷帳,并發(fā)用戶數(shù)50,平均響應時間122測試案例介紹實例2:加油IC卡試點工程核
38、心軟件V2.0 測試類型:并發(fā) 系統(tǒng)運行模式:發(fā)卡網點子系統(tǒng)采用三層結構的運行模 式,零管子系統(tǒng)采用C/S運行模式。中間件TUXEDO、數(shù)據庫服務器操作系統(tǒng)UNIX、數(shù)據庫Sybase 監(jiān)測的測試指標包括:交易處理性能、UNIX資源、TUXEDO資源 并發(fā)用戶數(shù):銷售信息查詢100,單用戶卡充值170 測試工具:QALoad、 LoadRunner123測試案例介紹實例2:加油IC卡試點工程核心軟件V2.0 (續(xù)) 解決的問題:銷售信息查詢,當記錄條數(shù)達到時,系統(tǒng)在15分鐘內無任何響應 。經分析確定為系統(tǒng)數(shù)據庫的架構存在問題。 例圖如下:124測試案例介紹1100用戶 250用戶 330用戶
39、420用戶 510用戶 125測試案例介紹實例3:高速公路聯(lián)網收費系統(tǒng)V1.1 測試類型:并發(fā)、疲勞系統(tǒng)運行模式: 該軟件為C/S結構,數(shù)據庫Informix7.3 ,中間件(自行開發(fā))Winsock,各級服務器均為IBM系列服務器監(jiān)測的測試指標包括: UNIX資源并發(fā)用戶數(shù):100測試工具:QALoad、 LoadRunner解決的問題:CPU占用率基本保持在65,在并發(fā)用戶數(shù)為100,交易數(shù)為100的情況下達到82%,最大值達到90以上??梢奀PU占用率將來有可能會成為系統(tǒng)瓶頸疲勞測試丟失數(shù)據763條,中間件的穩(wěn)定性有待進一步提高 例圖如下:126測試案例介紹0309100_05F:虛擬用
40、戶數(shù)100 0309100_060:虛擬用戶數(shù)100309100_061:虛擬用戶數(shù)30 0309100_062:虛擬用戶數(shù)50圖:入口車道往結算中心上傳交易響應時間分布圖127測試案例介紹實例4:多媒體數(shù)據庫 V1.0 測試類型:并發(fā)、疲勞系統(tǒng)運行模式:B/S運行模式,三層結構,web服務器為Apache,后臺各服務器操作系統(tǒng)為UNIX或者Linux,數(shù)據庫為Oracle監(jiān)測的測試指標包括: UNIX(Linux)、Oracle以及Apache資源并發(fā)用戶數(shù):200測試工具:QALoad、 LoadRunner解決的問題:當并發(fā)用戶數(shù)超過200時,監(jiān)控到HTTP 500、connect以及超
41、時錯誤,且web服務器報內存溢出錯誤,系統(tǒng)應進一步提高性能,以支持更大并發(fā)用戶數(shù)。 例圖如下: 128測試案例介紹129測試案例介紹實例5:業(yè)務流程管理平臺V1.0 測試類型:并發(fā)、疲勞系統(tǒng)運行模式:B/S運行模式,三層結構,web服務器為WebSphere ,后臺各服務器操作系統(tǒng)為Windows2000 Server ,數(shù)據庫為DB2監(jiān)測的測試指標包括:數(shù)據庫服務器、應用服務器、Web服務器的network interface、Windows2000 Server performance、數(shù)據庫DB2、WebSphere等資源并發(fā)用戶數(shù):500測試工具:QALoad、 LoadRunner解
42、決的問題:并發(fā)用戶數(shù)為500時的系統(tǒng)交易響應時間在不可接受的范圍內,數(shù)據庫服務器的資源占用預計會成為系統(tǒng)運行瓶頸。 例圖如下: 130測試案例介紹1.業(yè)務:wokflow,總并發(fā)用戶數(shù):100; 2. 業(yè)務:wokflow,總并發(fā)用戶數(shù):300;3. 業(yè)務:wokflow,總并發(fā)用戶數(shù):500; 4. 業(yè)務:homepage,總并發(fā)用戶數(shù):100;5. 業(yè)務:homepage,總并發(fā)用戶數(shù):300; 6. 業(yè)務:homepage,總并發(fā)用戶數(shù):500;7. 業(yè)務:mail,總并發(fā)用戶數(shù):100; 8. 業(yè)務:mail,總并發(fā)用戶數(shù):300;9. 業(yè)務:mail,總并發(fā)用戶數(shù):500; 10.
43、業(yè)務:mailsend,總并發(fā)用戶數(shù):100;11. 業(yè)務:mailsend,總并發(fā)用戶數(shù):300; 12. 業(yè)務:mailsend,總并發(fā)用戶數(shù):500131測試工具上機實習負載壓力測試工具:LoadRunner7.8上機實習內容:BSCS自己開發(fā)測試腳本資源監(jiān)控132測試工具的使用技巧面向目標的測試方案參數(shù)池技術 將事務插入到Vuser腳本 將集合點插入到Vuser腳本 動態(tài)數(shù)據關聯(lián) IP數(shù)據池 Web站點經驗點滴 腳本調試技術 測試工具配置技巧 加載GUI腳本Oracle故障診斷特殊的測試類型133面向目標的測試方案虛擬IP數(shù)據池用戶目標類型 每秒點擊次數(shù)、每分鐘頁面數(shù)或每秒事務數(shù) 事務
44、響應時間目標類型 134參數(shù)池技術(1)135參數(shù)池技術(2)136Manual Correlation 提問:系統(tǒng)的輸出值需要為后續(xù)操作提供輸入:系統(tǒng)產生的SessionID;每次訪問Web頁面的動態(tài)URL;表單提交期間錄制的Field(有時會隱藏)這些值只對當前會話有效。解決辦法:從一個操作步驟中撲捉輸出值該值用于另一個步驟的輸入137Manual Correlation這里我們提供幾種關聯(lián)數(shù)據的方法:手工關聯(lián)錄制結束后自動關聯(lián)錄制過程中自動關聯(lián)138Manual Correlation在Vuser腳本中關聯(lián)動態(tài)數(shù)據步驟:確定需要撲捉的值找到所撲捉值的左右邊界標識符決定應該使用哪個邊界將函
45、數(shù)web_reg_save_param加入腳本在函數(shù)中加入參數(shù)名稱、左邊界標識符、右邊界標識符以及函數(shù)事件在每次腳本運行時參數(shù)化動態(tài)數(shù)據校驗執(zhí)行結果139IP數(shù)據池運行負載生成器上的“IP 向導”添加指定數(shù)量的IP 地址。為UNIX 負載生成器計算機手動配置新的IP 地址。重新啟動計算機。如有必要,用新地址來更新服務器的路由表。在Controller 中啟用這項功能。 140Web應用測試測試策略 設計測試 開發(fā)測試應用測試 141Web應用測試策略按系統(tǒng)架構:客戶端測試、網絡上測試、服務器端測試按面向對象:功能測試、服務測試、安全測試、數(shù)據庫測試按質量特性:功能測試、性能測試、安全性測試、兼
46、容性測試和易用性測試按開發(fā)階段:設計測試、開發(fā)測試、運行測試142Web應用設計測試總體架構設計的測試客戶端設計的測試服務器端設計的測試143Web應用總體架構設計的測試采用瘦客戶端或胖客戶端是否適合需求確定Web架構的組成部分是否滿足需求服務器的配置及分布是否滿足需求144Web應用總體架構設計的測試序號模型單元1單元2單元31單單元模型基于NT的Web服務器基于NT的應用服務器基于NT的數(shù)據庫服務器2雙單元模型基于NT的Web服務器基于NT的應用服務器基于NT的數(shù)據庫服務器3三單元模型基于NT的Web服務器基于NT的應用服務器基于NT的Web服務器基于NT的應用服務器基于NT的數(shù)據庫服務器
47、4單單元模型基于UNIX的Web服務器基于UNIX的應用服務器基于UNIX的數(shù)據庫服務器5雙單元模型基于UNIX的Web服務器基于UNIX的應用服務器基于UNIX的數(shù)據庫服務器6三單元模型基于NT的Web服務器基于NT的應用服務器基于NT的Web服務器基于NT的應用服務器基于UNIX的數(shù)據庫服務器145Web應用客戶端設計的測試功能設置信息組織結構設計 頁面設計146Web應用服務器端設計的測試功能設置容量規(guī)劃安全系統(tǒng)設計 數(shù)據庫設計147Web應用開發(fā)測試代碼測試組件測試服務器端設計的測試148Web應用運行測試功能測試易用性測試負載壓力測試客戶端配置與兼容性測試安全性測試149Web應用安
48、全性測試部署與基礎結構輸入驗證身份驗證授權配置管理敏感數(shù)據回話管理加密參數(shù)操作異常管理審核與日值記錄150Web站點經驗點滴在執(zhí)行客戶端并發(fā)性能測試的過程中,需要同時監(jiān)控數(shù)據庫服務器、Web服務器以及網絡資源等使用情況,以便對系統(tǒng)的性能做全面評估 錄制腳本和手工編寫腳本相結合 設置數(shù)據池,實現(xiàn)變量加載業(yè)務批量執(zhí)行 151Web站點經驗點滴模擬用戶數(shù)的遞增 合理設置交易之間時間間隔 模擬IP地址變量的技術 超時(timeout)的設置 并發(fā)用戶連續(xù)執(zhí)行交易數(shù)的設置 錯誤處理152Web站點經驗點滴利用QALoad的ActiveData技術采用復合交易測試方案盡量將執(zhí)行負載測試的機器合理分布 并發(fā)
49、用戶數(shù)量極限點加壓機器的CPU使用率也有必要監(jiān)控 設置并發(fā)點 HTML與URL錄制方式153腳本調試技術Winsock并發(fā)性能測試 關鍵技術 : 在腳本中如何用變量來代替定值,即處理Winsock應用程序數(shù)據流。 看看下面的實例腳本 !154原始腳本PLAYER_INFO *s_info;/* Declare Variables */SET_ABORT_FUNCTION(abort_function);DEFINE_TRANS_TYPE(wsk-AdvancedTech_1.c);/ Checkpoints have been included by the convert processDe
50、faultCheckpointsOn();DO_WSK_Init(s_info);SetTimeout(20); /* Wait up to 20 seconds for eachexpected pattern */SYNCHRONIZE();BEGIN_TRANSACTION();DO_WSK_Socket(S1, AF_INET, SOCK_STREAM, IPPROTO_IP);DO_WSK_Bind(S1, ANY_ADDR, ANY_PORT);DO_WSK_Connect(S1, 25, 2100, AF_INET);/ The session id returned by th
51、e server is/ unique to each connection/* 21bytes: SessionID=jrt90847rn */DO_WSK_Expect(S1, n);/ This unique id is then used for subsequent/ requests/* 34 bytes */DO_WSK_Send(S1,SessionID=jrt90847rn:BBA);/* 15 bytes: ID Accepted#rn */DO_WSK_Expect(S1, n);DO_WSK_Closesocket(S1);END_TRANSACTION();REPOR
52、T(SUCCESS);EXIT();return(0);155修改后的腳本PLAYER_INFO *s_info;/* Declare Variables */char Buffer64;char SendBuffer64;int nBytesReceived = 0;SET_ABORT_FUNCTION(abort_function);DEFINE_TRANS_TYPE(wsk-AdvancedTech_1.c);/ Checkpoints have been included by the convert processDefaultCheckpointsOn();DO_WSK_Init(
53、s_info);SetTimeout(20); /* Wait up to 20 seconds for eachexpected pattern */SYNCHRONIZE();BEGIN_TRANSACTION();DO_WSK_Socket(S1, AF_INET, SOCK_STREAM, IPPROTO_IP);DO_WSK_Bind(S1, ANY_ADDR, ANY_PORT);DO_WSK_Connect(S1, 25, 2100, AF_INET);/ The reply from the server is read into/ the Buffer variable. W
54、e will then have/ the unique Session ID for this connection./ Also need to null terminate the buffer/ after receiving./DO_WSK_Recv(S1, Buffer, 64, 0, &nBytesReceived);BuffernBytesRecieved = 0;/* 21bytes: SessionID=jrt90847rn */DO_WSK_Expect(S1, n);/ Finally, substitute the Session ID received from/
55、the server with the one coded in the script./sprintf(SendBuffer, %s:BBA,Buffer);DO_WSK_Send(S1, SendBuffer);/* 34 bytes */DO_WSK_Send(S1,SessionID=jrt90847:BBA);/* 15 bytes: ID Accepted#rn */DO_WSK_Expect(S1, n);Advanced Scripting Techniques for WinSock 7-5DO_WSK_Closesocket(S1);END_TRANSACTION();RE
56、PORT(SUCCESS);EXIT();return(0);156腳本調試技術SQLServer并發(fā)性能測試 關鍵技術 : 從存儲過程中撲獲一個值利用檢索到的值作為一個參數(shù)傳遞給存儲過程 看看下面的實例腳本 !157腳本調試技術存儲過程定義如下create procedure inc_test_sp(first_param int)asbeginselect second_param = first_param + 1end158腳本代碼如下:strcpy(sql_statement, /* 1 */execute inc_test_sp sample_param =01 );DO_substr(sql_statement, 1, 100 );BEGIN_CHECKPOINT(); /* #1: Stored Procedure */DO_dbcmd(0, sql_statement);DO_dbsqlexec( 0 );while (DO_dbGetResults(0);END_CHECKPOINT(25); /* #25: Stored Pr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能科技研發(fā)項目合同
- 小區(qū)物業(yè)服務提升協(xié)議
- 一碳化合物中試平臺可持續(xù)發(fā)展模式與市場前景
- 2025年信息系統(tǒng)項目管理考試試題及答案
- 2025年聲樂藝術考核試題及答案
- 2025年城市管理與環(huán)境保護的實踐能力的考試試卷及答案
- 特殊體制學生管理制度
- 特殊氣候應急管理制度
- 特種作業(yè)車輛管理制度
- 特種設施設備管理制度
- 中考化學專題:質量守恒教學設計 人教版
- 2023年全國職業(yè)院校技能大賽-融媒體內容策劃與制作賽項規(guī)程
- 國家開放大學本科《商務英語4》一平臺機考真題及答案(第一套)
- 有關構建政務信息系統(tǒng)密碼應用管理體系的建議
- 新能源汽車動力蓄電池及管理技術 課件 模塊二 動力蓄電池管理系統(tǒng)功能和技術認知
- 無犯罪查詢授權委托書
- 屋頂分布式光伏電站施工管理要點
- 廣東省珠海市金灣區(qū)2023-2024學年七年級下學期期末考試生物試題(無答案)
- 2024年湖南中考化學試卷及答案
- DL-T-300-2011火電廠凝氣器管防腐防垢導則
- 何家弘法律英語第四版翻譯完整版
評論
0/150
提交評論