亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

233jl / 1100人閱讀

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

基準(zhǔn)測試是什么?

簡單來說,基準(zhǔn)測試是則很難對系統(tǒng)設(shè)計的一種壓力測試,通常的目標(biāo)是為了掌握系統(tǒng)的行為。但也有其他原因。比如重現(xiàn)某個系統(tǒng)狀態(tài),或者是做新硬件的可靠性測試。

為什么需要基準(zhǔn)測試

因為基準(zhǔn)測試是唯一有效方便的,可以學(xué)習(xí)系統(tǒng)在給定的工作負(fù)載下會發(fā)生什么的方法。系統(tǒng)測試可以觀察在不同壓力下的行為,評估系統(tǒng)的容量,掌握哪些是重要的變化,或者觀察系統(tǒng)如何處理不同的數(shù)據(jù)。

基準(zhǔn)測試可以完成的工作:

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

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

那么基準(zhǔn)測試和真實壓力不同在什么地方?

  • 數(shù)據(jù)量,數(shù)據(jù)和查詢的分布
  • 但最重要的一點是基準(zhǔn)測試通常要求盡可能快完成,所以會給系統(tǒng)造成過大的壓力,所以一般都會調(diào)整給測試工具的最大壓力,一遍系統(tǒng)可以在閾值內(nèi)完成測試

結(jié)論就是,我們只能進行大概的測試,來確定系統(tǒng)大致的余量有多少。當(dāng)然也可以做一些真實的壓力測試,但在構(gòu)造數(shù)據(jù)集和壓力要特別小心,而且這樣就不再是基準(zhǔn)測試了?;鶞?zhǔn)測試要簡單直接,結(jié)果之間相互容易比較

基準(zhǔn)測試的策略

兩種主要策略:

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

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

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

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

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

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

另外,如果能夠在真實的數(shù)據(jù)集上執(zhí)行重復(fù)的查詢,那么也是有用的,如果可能,可以采用生產(chǎn)環(huán)境的數(shù)據(jù)快照。不幸的是,設(shè)置一個基于真實數(shù)據(jù)的基準(zhǔn)測試復(fù)雜而且耗時,而且開發(fā)一個新應(yīng)用,只有很少的數(shù)據(jù)量,如果想要測試規(guī)模擴張后的性能表現(xiàn),只能通過模擬大量的數(shù)據(jù)和壓力進行

測試何種指標(biāo)

不同的指標(biāo)需要用不同的方法測試

以下指標(biāo):

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

歸根結(jié)底,應(yīng)該測試那些對用戶來說最重要的指標(biāo)。因此應(yīng)該盡可能地去收集一些需求,然后基于這些需求去設(shè)計基準(zhǔn)測試

基準(zhǔn)測試的方法

以下是測試的常見錯誤

  • 使用真實數(shù)據(jù)的子集而不是全集
  • 使用錯誤的數(shù)據(jù)分布
  • 使用不真實的分布參數(shù)
  • 在多用戶場景中,只做單用戶的測試
  • 在單服務(wù)器上測試分布式應(yīng)用
  • 與用戶真實行為不匹配
  • 反復(fù)的執(zhí)行同一個查詢
  • 沒有檢查錯誤
  • 忽略了系統(tǒng)預(yù)熱的過程,不同狀態(tài)下測試的結(jié)果是不相同的
  • 使用默認(rèn)的服務(wù)器配置
  • 測試時間太短了,因為基準(zhǔn)測試需要持續(xù)一定的時間

設(shè)計和規(guī)劃基準(zhǔn)測試

  1. 提出問題并明確目標(biāo)
  2. 決定是采用標(biāo)準(zhǔn)的基準(zhǔn)測試,還是設(shè)計專用的測試

標(biāo)準(zhǔn)的基準(zhǔn)測試,應(yīng)該確認(rèn)選擇了合適的測試方案

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

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

4.即使不需要創(chuàng)建專用的基準(zhǔn)測試,也要寫下測試規(guī)劃(測試數(shù)據(jù),系統(tǒng)配置步驟,如何測量和分析結(jié)果,以及預(yù)熱的方案)

5.寫一些腳本分析測試結(jié)果

基準(zhǔn)測試應(yīng)該運行多長時間

基準(zhǔn)測試應(yīng)該運行足夠長的時間,這一點非常重要,應(yīng)當(dāng)在穩(wěn)定狀態(tài)下測試并觀察

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

獲取系統(tǒng)性能和狀態(tài)

可以編寫一個shell腳本來記錄測試結(jié)果,配置文件,測試指標(biāo),腳本和其他相關(guān)說明都保存在其中

獲得準(zhǔn)確的測試結(jié)果

首先,獲得準(zhǔn)確測試結(jié)果的最好辦法,是回答一些關(guān)于基準(zhǔn)測試的基本問題:

  • 是否選擇了正確的基準(zhǔn)測試
  • 是否為問題收集了相關(guān)的數(shù)據(jù)
  • 是否采用了錯誤的測試標(biāo)準(zhǔn)

然后,確認(rèn)測試結(jié)果是否可重復(fù),每次測試之前都要確保系統(tǒng)的狀態(tài)一致

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

每次測試時修改的數(shù)據(jù)應(yīng)該盡可能地小,一般情況下都是通過迭代的方式

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/119610.html

相關(guān)文章

發(fā)表評論

0條評論

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