前言:
基準測試benchmark:基本技能,是針對系統設計的一種壓力測試,是唯一方便有效、可學習系統在給定的工作負載下回發生什麼的方法,他可以觀察系統在不同壓力下的行為,評估系統的容量,掌握哪些是重要的變化,或觀察系統如何處理不同的數據,可在系統實際負載外創建虛擬場景進行測試(掌握系統行為)
正文:
如前言,基準測試很、重、要!可以完成的工作: 總的來說:測試硬體、預估硬體、驗證系統、測壓力、調配置
1、驗證基於系統的假設,確認假設是否符合實際情況;2、重現系統中某些異常行為,以解決;3、測試系統目前的運作情況,利用歷史結果分析診斷無法預測的問題; 4、模擬較高的負載找出系統隨壓力增加可能遇到的擴展性瓶頸;5、規劃未來的業務成長,硬體、網路容量、相關資源;6、測試應用適應可變環境的能力;7、測試不同的硬體、軟體和作業系統配置,證明設備是否配置正確;
對資料庫的基準測試的作用,就是分析在目前的配置下(包括硬體配置、OS、資料庫設定等),資料庫的效能表現,從而找出MySQL的效能閾值,並根據實際系統的要求調整配置。 【源】
與真實壓力不同:真實的複雜多變;基準測試要求盡可能快執行完成,簡單直接、結果易比較、成本低易行
針對系統整體:整合式full-stack
單獨測試MySQL:單一元件式single-component
建議整體測試:要正確設定
1、使用者關注的是整體的效能;2、MySQL並非總是瓶頸;3、更能揭示應用的真實表現
#推薦單獨測試:需要資料
1、需比較不同schema或查詢的效能;2、針對某個特定問題的測試;3、避免漫長,做短期、快速週期循環
目標:細化為一系列問題,具體問題具體分析
單位時間內事務處理數,TPC-C、多重使用者互動應用,每秒事務數,每分鐘事務數
測試任務所需的整體時間,平均響時、最小響時、最大和所佔百分比;使用圖表
#測試應用在不同並發下的效能,關注正在工作中的並發操作、同時工作中的線程數連線數;
web伺服器並發性! =資料庫的,僅表格會話儲存機制資料處理能力;測web並發任何時間有多少並發;
擴充性:為系統增加一倍工作,理性狀況下能獲得兩部的結果;給予系統增加一倍資源可或2倍吞吐量
系統業務壓力可能改變:測可擴展性非常必要;此指標對容量規格有用:提供資訊來發現應用瓶頸
盡可能收集測試需求,基於需求設計測試,忌只專注於部分指標,而忽略其他指標
要盡可能接近真實應用的情況:
使用全集、資料分佈特性、真實分佈參數、是否有多個使用者、配對使用者行為、多重類型、檢查錯誤日誌、系統預熱:重新啟動後多久才達到正常效能容量、持續一定時間;
提出問題、目標明確
標準的基準測試:適當的方案TPC-H OLTP
專用的測試:複雜、迭代,取得易還原的生產資料集快照
計畫: 參數、結果文件化、測試詳細記錄
基準測試應運行足夠長的時間,無法確認時間可一直運行,持續觀察知道確認系統已穩定
一個簡單的測試規則:等系統看起來穩定的時間至少=系統預熱的時間
盡量多收集被測系統的資訊
best建置目錄、每執行一輪測試建立單獨子目錄,將結果、設定檔、測試指標、腳本和其他相關說明保存其中
需要記錄是資料:
系統狀態、效能指標:CPU使用率 、磁碟I/O、網路流量統計、SHOWGLOBAL STATUS計數器
合理的間隔,記錄開始時間、利用時間戳記、只是收集就好
回答一些問題:
是否選擇了正確的基準測試?是否為問題收集了數據?預熱時間是否夠長?
是否採用了錯誤的測試標準:IO密集型引用採用CPU密集型測試標準來評估效能?
測試結果是否可重複?重測前確保系統狀態一致;對症測
影響因素:
外在壓力、效能分析、監控系統、詳細日誌、週期性作業
##注意: 過程中所需資源是專來測試的;測試中盡量少修改參數、透過迭代逐步修改基準測試的參數;認真研究過程中的異常情況並找到原因2.3.5執行測試分析結果自動化:減少人為失誤,Makefile檔案、腳本測試結果滿足目前需求,簡單執行幾輪測試,看看結果就OK了,如結果變化很大,可多運行幾次、或更長結果:
分析,將數字變成知識,最終的目的是回答在設計時的問題
如何抽像有意義的結果,依賴如何收集數據,寫腳本分析數據、減少人為失誤、工作量、可重複、文檔化2.3.6繪圖比較測試,單執行緒串列執行,測執行查詢的速度;包含了大量預定義測試,易使用,輕鬆比較不同引擎或配置的效能測試,CPU密集型的,結果會顯示哪些類型的操作在伺服器上執行更快,缺點:測試資料集小且無法用指定的數據,需要perl BDB支援;【參考】
3、Super Smack:MySQL、 PostgreSQL,提供壓力測試和負載平衡,複雜而強大的工具,可模擬多用戶訪問,加載測試資料到庫、隨機資料填充測試表【參考】
4、Database Test Suite:類似某些工業標準測試的工具集,免費TPC-C OLTP測試工具
5、sysbench:多執行緒系統壓測,根據影響資料庫伺服器效能的因素評估系統的效能,全能測試工具,支援MySQL、作業系統、硬體的硬體測試【參考】【2】
MySQL的BENCHMARK()函數:測試特定操作的執行速度,參數可以是需要執行的次數或表達式(任何標量表達式)2.5案例#此處省略n字 #2.6總結 終於等到你~音樂起;建議至少要熟悉sysbench,如何使用oltp(比較不同系統效能) 和fileio 測試;經常執行基準測試,制定一些原則很必要,選擇合適的測試工具、建立腳本庫,收集資訊分析結果,熟練一種繪圖工具; 大佬都這麼說了,所以你知道我的下一篇是什麼了嗎? 相關文章:以上是【MySQL資料庫】第二章解讀:MySQL基準測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!