国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

高性能MySQL讀書筆記(2)--MySQL基準測試

233jl / 1031人閱讀

摘要:當并發性增加時,需要測量吞吐量是否下降,響應時間是否變長可擴展性可擴展性不是壓力測試的指標,可擴展性指標對于容量規范非常有用,它可以提供其他測試無法提供的信息,來幫助發現應用的瓶頸歸根結底,應該測試那些對用戶來說最重要的指標。

基準測試是什么?

簡單來說,基準測試是則很難對系統設計的一種壓力測試,通常的目標是為了掌握系統的行為。但也有其他原因。比如重現某個系統狀態,或者是做新硬件的可靠性測試。

為什么需要基準測試

因為基準測試是唯一有效方便的,可以學習系統在給定的工作負載下會發生什么的方法。系統測試可以觀察在不同壓力下的行為,評估系統的容量,掌握哪些是重要的變化,或者觀察系統如何處理不同的數據。

基準測試可以完成的工作:

  • 驗證系統的假設以及這些假設是否符合實際情況
  • 重現并解決系統中的異常行為
  • 測試系統當前的運行情況和利用歷史的基準測試結果分析一些無法預測的問題
  • 模擬比當前系統更高的負載從而找出系統隨壓力增加而遇到的瓶頸
  • 規劃未來的業務增長
  • 測試應用適應可變環境的能力
  • 測試不同的硬件,軟件和操作系統配置
  • 證明新采購的設備是否配置正確

基準測試的一個主要問題在于其不是真實壓力的測試。基準測試施加給系統的壓力相對真實壓力來說,通常會比較簡單,因為真實壓力是不可預期而且變化多端的,有時候情況會過于復雜而難以解釋。

那么基準測試和真實壓力不同在什么地方?

  • 數據量,數據和查詢的分布
  • 但最重要的一點是基準測試通常要求盡可能快完成,所以會給系統造成過大的壓力,所以一般都會調整給測試工具的最大壓力,一遍系統可以在閾值內完成測試

結論就是,我們只能進行大概的測試,來確定系統大致的余量有多少。當然也可以做一些真實的壓力測試,但在構造數據集和壓力要特別小心,而且這樣就不再是基準測試了。基準測試要簡單直接,結果之間相互容易比較

基準測試的策略

兩種主要策略:

  1. 集成式:針對整個系統的整體測試
  2. 單組件式:多帶帶測試MySQL

針對測試整個系統做集成式測試而不是多帶帶測試的原因有以下幾點:

  • 因為用戶關注的不僅僅是MySQL本身的性能,而是應用整體的性能
  • MySQL并非總是應用的瓶頸
  • 只有對整體應用做測試,才能發i西安各部分之間的緩存帶來的影響
  • 集成式測試更能揭示應用的真實表現,而多帶帶組件很難做到這一點

但是集成式測試很難建立,如果基準測試的設計有問題,那么結果就無法反映真實的情況,決策也可能是錯的。

所以有的時候不需要了解整個應用的情況,而只需要關注MySQL的性能,至少在項目初期可以這樣做,以下情況,可以選擇只測試MySQL:

  • 需要比較不同的schema或查詢的性能
  • 針對應用中某個問題的測試
  • 為了避免漫長的基準測試,可以通過一個短期的基準測試,做快速的”周期循環“

另外,如果能夠在真實的數據集上執行重復的查詢,那么也是有用的,如果可能,可以采用生產環境的數據快照。不幸的是,設置一個基于真實數據的基準測試復雜而且耗時,而且開發一個新應用,只有很少的數據量,如果想要測試規模擴張后的性能表現,只能通過模擬大量的數據和壓力進行

測試何種指標

不同的指標需要用不同的方法測試

以下指標:

  • 吞吐量:單位時間內事務處理數。這類基準測試主要是針對在線事務處理(OLTP)的吞吐量,測試的常用單位是每秒或每分鐘事務數(TPS/TPM)
  • 響應時間或延遲:這個指標用于測試任務所需的整體時間,一般使用百分比響應時間
  • 并發性:非常重要但是經常被誤解的指標。并發性基準測試需要關注的是正在工作中的并發操作,或者是同時工作的線程數或者是連接數。當并發性增加時,需要測量吞吐量是否下降,響應時間是否變長
  • 可擴展性:可擴展性不是壓力測試的指標,可擴展性指標對于容量規范非常有用,它可以提供其他測試無法提供的信息,來幫助發現應用的瓶頸

歸根結底,應該測試那些對用戶來說最重要的指標。因此應該盡可能地去收集一些需求,然后基于這些需求去設計基準測試

基準測試的方法

以下是測試的常見錯誤

  • 使用真實數據的子集而不是全集
  • 使用錯誤的數據分布
  • 使用不真實的分布參數
  • 在多用戶場景中,只做單用戶的測試
  • 在單服務器上測試分布式應用
  • 與用戶真實行為不匹配
  • 反復的執行同一個查詢
  • 沒有檢查錯誤
  • 忽略了系統預熱的過程,不同狀態下測試的結果是不相同的
  • 使用默認的服務器配置
  • 測試時間太短了,因為基準測試需要持續一定的時間

設計和規劃基準測試

  1. 提出問題并明確目標
  2. 決定是采用標準的基準測試,還是設計專用的測試

標準的基準測試,應該確認選擇了合適的測試方案

設計專用的基準測試是很復雜的,往往需要一個迭代的過程。首先需要獲得生產數據集的快照(很容易還原),然后,針對數據運行查詢(選擇一個有代表性的時間段,如果時間段選擇比較小,則可以選擇多個時間段,這樣有助于覆蓋整個系統的活動狀態)

3.可以在不同級別記錄查詢

4.即使不需要創建專用的基準測試,也要寫下測試規劃(測試數據,系統配置步驟,如何測量和分析結果,以及預熱的方案)

5.寫一些腳本分析測試結果

基準測試應該運行多長時間

基準測試應該運行足夠長的時間,這一點非常重要,應當在穩定狀態下測試并觀察

一個常見的錯誤測試方式是,只執行一系列短期的測試。這種不花費足夠時間去完成準確完成的基準測試,那么已經花費的所有時間都是一種浪費,所以有時候要相信別人的測試結果,并使用

獲取系統性能和狀態

可以編寫一個shell腳本來記錄測試結果,配置文件,測試指標,腳本和其他相關說明都保存在其中

獲得準確的測試結果

首先,獲得準確測試結果的最好辦法,是回答一些關于基準測試的基本問題:

  • 是否選擇了正確的基準測試
  • 是否為問題收集了相關的數據
  • 是否采用了錯誤的測試標準

然后,確認測試結果是否可重復,每次測試之前都要確保系統的狀態一致

如果測試過程會修改數據或者schema,那么每次測試前,需要利用快照還原數據

每次測試時修改的數據應該盡可能地小,一般情況下都是通過迭代的方式

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/119610.html

相關文章

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<