熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

高性能MySQL:為什麼需要基准測試

2013-11-23 21:11:21  來源: MySQL 

  章 MySQL基准測試

  基准測試(benchmark)是MySQL 新手和專家都需要掌握的一項基本技能簡單地說基准測試是針對系統設計的一種壓力測試通常的目標是為了掌握系統的行為但也有其他原因如重現某個系統狀態或者是做新硬件的可靠性測試本章將討論MySQL 和基於MySQL 的應用的基准測試的重要性策略和工具我們將特別討論一下sysbench這是一款非常優秀的MySQL 基准測試工具

   為什麼需要基准測試

  為什麼基准測試很重要?因為基准測試是唯一方便有效的可以學習系統在給定的工作負載下會發生什麼的方法基准測試可以觀察系統在不同壓力下的行為評估系統的容量掌握哪些是重要的變化或者觀察系統如何處理不同的數據基准測試可以在系統實際負載之外創造一些虛構場景進行測試基准測試可以完成以下工作或者更多

  驗證基於系統的y一些假設確認這些假設是否符合實際情況

  重現系統中的某些異常行為以解決這些異常

  測試系統當前的運行情況如果不清楚系統當前的性能就無法確認某些優化的效果如何也可以利用歷史的基准測試結果來分析診斷一些無法預測的問題

  模擬比當前系統更高的負載以找出系統隨著壓力增加而可能遇到的擴展性瓶頸

  規劃未來的業務增長基准測試可以評估在項目未來的負載下需要什麼樣的硬件需要多大容量的網絡以及其他相關資源這有助於降低系統升級和重大變更的風險

  測試應用適應可變環境的能力例如通過基准測試可以發現系統在隨機的並發峰值下的性能表現或者是不同配置的服務器之間的性能表現基准測試也可以測試系統對不同數據分布的處理能力

  測試不同的硬件軟件和操作系統配置比如RAID y 還是RAID 更適合當前的系統?如果系統從ATA 硬盤升級到SAN 存儲對於隨機寫性能有什麼幫助? Linux 系列的內核會比 系列的可擴展性更好嗎?升級MySQL 的版本能改善性能嗎?為當前的數據采用不同的存儲引擎會有什麼效果?所有這類問題都可以通過專門的基准測試來獲得答案

  證明新采購的設備是否配置正確筆者曾經無數次地通過基准測試來對新系統進行壓測發現了很多錯誤的配置以及硬件組件的失效等問題因此在新系統正式上線到生產環境之前進行基准測試是一個好習慣永遠不要相信主機提供商或者硬件供應商的所謂系統已經安裝好並且能運行多快的說法如果可能執行實際的基准測試永遠是一個好主意

  基准測試還可以用於其他目的比如為應用創建單元測試套件但本章我們只關注與性能有關的基准測試

  基准測試的一個主要問題在於其不是真實壓力的測試基准測試施加給系統的壓力相對真實壓力來說通常比較簡單真實壓力是不可預期而且變化多端的有時候情況會過於復雜而難以解釋所以使用真實壓力測試可能難以從結果中分析出確切的結論

  基准測試的壓力和真實壓力在哪些方面不同?有很多因素會影響基准測試比如數據量數據和查詢的分布但最重要的一點還是基准測試通常要求盡可能快地執行完成所以經常給系統造成過大的壓力在很多案例中我們都會調整給測試工具的最大壓力以在系統可以容忍的壓力阈值內盡可能快地執行測試這對於確定系統的最大容量非常有幫助然而大部分壓力測試工具不支持對壓力進行復雜的控制務必要記住測試工具自身的局限也會影響到結果的有效性

  使用基准測試進行容量規劃也要掌握技巧不能只根據測試結果做簡單的推斷例如假設想知道使用新數據庫服務器後系統能夠支撐多大的業務增長首先對原系統進行基准測試然後對新系統做測試結果發現新系統可以支持原系統 倍的TPS(每秒事務數)這時候就不能簡單地推斷說新系統一定可以支持 倍的業務增長這是因為在業務增長的同時系統的流量用戶數據以及不同數據之間的交互都在增長它們不可能都有 倍的支撐能力尤其是相互之間的關系而且當業務增長到 倍時應用本身的設計也可能已經隨之改變可能有更多的新特性會上線其中某些特性可能對數據庫造成的壓力遠大於原有功能而這些壓力數據關系和特性的變化都很難模擬所以它們對系統的影響也很難評估

  結論就是我們只能進行大概的測試來確定系統大致的余量有多少當然也可以做一些真實壓力測試(和基准測試有區別)但在構造數據集和壓力的時候要特別小心而且這樣就不再是基准測試了基准測試要盡量簡單直接結果之間容易相互比較成本低且易於執行盡管有諸多限制基准測試還是非常有用的(只要搞清楚測試的原理並且了解如何分析結果所代表的意義)

       返回目錄高性能MySQL

       編輯推薦

       ASP NET開發培訓視頻教程

  數據倉庫與數據挖掘培訓視頻教程

       Oracle索引技術


From:http://tw.wingwit.com/Article/program/MySQL/201311/29743.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.