您好,登錄后才能下訂單哦!
這篇文章主要介紹MySQL如何測(cè)試,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
前言:
基準(zhǔn)測(cè)試benchmark:基本技能,是針對(duì)系統(tǒng)設(shè)計(jì)的一種壓力測(cè)試,是唯一方便有效、可學(xué)習(xí)系統(tǒng)在給定的工作負(fù)載下回發(fā)生什么 的方法,他可以觀察系統(tǒng)在不同壓力下的行為,評(píng)估系統(tǒng)的容量,掌握哪些是重要的變化,或觀察系統(tǒng)如何處理不同的數(shù)據(jù),可在系統(tǒng)實(shí)際負(fù)載外創(chuàng)建虛擬場(chǎng)景進(jìn)行測(cè)試(掌握系統(tǒng)行為)
正文:
如前言,基準(zhǔn)測(cè)試很、重、要!可以完成的工作: 總的來(lái)說(shuō):測(cè)試硬件、預(yù)估硬件、驗(yàn)證系統(tǒng)、測(cè)壓力、調(diào)配置
1、驗(yàn)證基于系統(tǒng)的假設(shè),確認(rèn)假設(shè)是否符合實(shí)際情況;2、重現(xiàn)系統(tǒng)中某些異常行為,以解決;3、測(cè)試系統(tǒng)當(dāng)前的運(yùn)行情況,利用歷史結(jié)果分析診斷無(wú)法預(yù)測(cè)的問(wèn)題; 4、模擬更高的負(fù)載找出系統(tǒng)隨壓力增加而可能遇到的擴(kuò)展性瓶頸;5、規(guī)劃未來(lái)的業(yè)務(wù)增長(zhǎng),硬件、網(wǎng)絡(luò)容量、相關(guān)資源;6、測(cè)試應(yīng)用適應(yīng)可變環(huán)境的能力;7、測(cè)試不同的硬件、軟件和操作系統(tǒng)配置,證明設(shè)備是否配置正確;
對(duì)數(shù)據(jù)庫(kù)的基準(zhǔn)測(cè)試的作用,就是分析在當(dāng)前的配置下(包括硬件配置、OS、數(shù)據(jù)庫(kù)設(shè)置等),數(shù)據(jù)庫(kù)的性能表現(xiàn),從而找出MySQL的性能閾值,并根據(jù)實(shí)際系統(tǒng)的要求調(diào)整配置。【源】
與真實(shí)壓力不同:真實(shí)的復(fù)雜多變;基準(zhǔn)測(cè)試要求盡可能快執(zhí)行完成,簡(jiǎn)單直接、結(jié)果易比較、成本低易行
針對(duì)系統(tǒng)整體:集成式full-stack
單獨(dú)測(cè)試MySQL:?jiǎn)谓M件式single-component
推薦整體測(cè)試:要正確設(shè)置
1、用戶關(guān)注的是整體的性能;2、MySQL并非總是瓶頸;3、更能揭示應(yīng)用的真實(shí)表現(xiàn)
推薦單獨(dú)測(cè)試:需要數(shù)據(jù)
1、需比較不同schema或查詢的性能;2、針對(duì)某個(gè)具體問(wèn)題的測(cè)試;3、避免漫長(zhǎng),做短期、快速周期循環(huán)
目標(biāo):細(xì)化為一系列問(wèn)題,具體問(wèn)題具體分析
單位時(shí)間內(nèi)事務(wù)處理數(shù),TPC-C、多用戶交互式應(yīng)用,每秒事務(wù)數(shù),每分鐘事務(wù)數(shù)
測(cè)試任務(wù)所需的整體時(shí)間,平均響時(shí)、最小響時(shí)、最大和所占百分比;借助圖表
測(cè)試應(yīng)用在不同并發(fā)下的性能,關(guān)注正在工作中的并發(fā)操作、同時(shí)工作中的線程數(shù) 連接數(shù);
web服務(wù)器并發(fā)性!=數(shù)據(jù)庫(kù)的,僅表會(huì)話存儲(chǔ)機(jī)制數(shù)據(jù)處理能力;測(cè)web并發(fā) 任意時(shí)間有多少并發(fā);
可擴(kuò)展性:給系統(tǒng)增加一倍工作,理性情況下能獲得兩部的結(jié)果;給系統(tǒng)增一倍資源可或2倍吞吐量
系統(tǒng)業(yè)務(wù)壓力可能發(fā)生變化:測(cè)可擴(kuò)展性非常必要;該指標(biāo)對(duì)容量規(guī)范有用:提供信息來(lái)發(fā)現(xiàn)應(yīng)用瓶頸
盡可能收集測(cè)試需求,基于需求設(shè)計(jì)測(cè)試,忌只關(guān)注部分指標(biāo),而忽略其他指標(biāo)
要盡可能接近真實(shí)應(yīng)用的情況:
使用全集、數(shù)據(jù)分布特點(diǎn)、真實(shí)分布參數(shù)、是否多用戶、匹配用戶行為、多類型、檢查錯(cuò)誤日志、系統(tǒng)預(yù)熱:重啟后多長(zhǎng)時(shí)間才達(dá)到正常性能容量、持續(xù)一定時(shí)間;
提出問(wèn)題、目標(biāo)明確
標(biāo)準(zhǔn)的基準(zhǔn)測(cè)試:合適的方案 TPC-H OLTP
專用的測(cè)試:復(fù)雜、迭代,獲易還原的生產(chǎn)數(shù)據(jù)集快照
計(jì)劃: 參數(shù)、結(jié)果文檔化、測(cè)試詳細(xì)記錄
基準(zhǔn)測(cè)試應(yīng)運(yùn)行足夠長(zhǎng)的時(shí)間,無(wú)法確認(rèn)時(shí)間可一直運(yùn)行,持續(xù)觀察知道確認(rèn)系統(tǒng)已穩(wěn)定
一個(gè)簡(jiǎn)單的測(cè)試規(guī)則:等系統(tǒng)看起來(lái)穩(wěn)定的時(shí)間至少=系統(tǒng)預(yù)熱的時(shí)間
盡量多地收集被測(cè)系統(tǒng)的信息
best建目錄、每執(zhí)行一輪測(cè)試創(chuàng)建單獨(dú)子目錄,將結(jié)果、配置文件、測(cè)試指標(biāo)、腳本和其他相關(guān)說(shuō)明保存其中
需要記錄是數(shù)據(jù):
系統(tǒng)狀態(tài)、性能指標(biāo):CPU使用率 、磁盤(pán)I/O、網(wǎng)絡(luò)流量統(tǒng)計(jì)、SHOWGLOBAL STATUS計(jì)數(shù)器
合理的間隔,記錄開(kāi)始時(shí)間、利用時(shí)間戳、只是收集就好
回答些問(wèn)題:
是否選擇了正確的基準(zhǔn)測(cè)試?是否為問(wèn)題收集了數(shù)據(jù)?預(yù)熱時(shí)間是否足夠長(zhǎng)?
是否采用了錯(cuò)誤的測(cè)試標(biāo)準(zhǔn):IO密集型引用采用CPU密集型測(cè)試標(biāo)準(zhǔn)來(lái)評(píng)估性能?
測(cè)試結(jié)果是否可重復(fù)?重測(cè)前確保系統(tǒng)狀態(tài)一致;對(duì)癥測(cè)
影響因素:
外部壓力、性能分析、監(jiān)控系統(tǒng)、詳細(xì)日志、周期性作業(yè)
注意:
過(guò)程中所需資源是專來(lái)測(cè)試的;測(cè)試中盡量少修改參數(shù)、通過(guò)迭代逐步修改基準(zhǔn)測(cè)試的參數(shù);認(rèn)真研究過(guò)程中的異常情況并找到原因
自動(dòng)化:減少人為失誤,Makefile文件、腳本
測(cè)試結(jié)果滿足目前需求,簡(jiǎn)單運(yùn)行幾輪測(cè)試,看看結(jié)果就OK了,如結(jié)果變化很大,可多運(yùn)行幾次、或更長(zhǎng)時(shí)間
結(jié)果:
分析,將數(shù)字變成知識(shí),最終的目的是回答在設(shè)計(jì)時(shí)的問(wèn)題
如何抽象有意義的結(jié)果,依賴于如何收集數(shù)據(jù),寫(xiě)腳本分析數(shù)據(jù)、減少人為失誤、工作量、可重復(fù)、文檔化
一張圖勝過(guò)千言萬(wàn)語(yǔ)嘛,本來(lái)有些知識(shí)點(diǎn)寶寶是想畫(huà)導(dǎo)圖的,但是么有畫(huà)
書(shū)中有這么一個(gè)語(yǔ)句,分享一下:SHOW FULL PROCESSLIST SHOW PROCESSLIST顯示哪些線程正在運(yùn)行,您也可以使用mysqladmin processlist語(yǔ)句得到此信息,如果您有SUPER權(quán)限,您可以看到所有線程,否則,您只能看到您自己的線程,不使用FULL關(guān)鍵詞,則只顯示每個(gè)查詢的前100個(gè)字符【源】
1、ab是Apache HTTP,每秒最多可處理多少請(qǐng)求【參考】【2】
2、http_load:ab類似更靈活,被設(shè)計(jì)為對(duì)web服務(wù)器測(cè)試,通過(guò)一個(gè)輸入文件提供多個(gè)URL,隨機(jī)選擇進(jìn)行測(cè)試,也可定制,使其按照時(shí)間比率進(jìn)行測(cè)試【參考】
3、JMeter,java程序,可加載其他應(yīng)用并測(cè)試其性能,這個(gè)聽(tīng)不錯(cuò)的,上面兩個(gè)沒(méi)有接觸過(guò),不評(píng)論
1、mysqlslap:mysql5.1后自帶,模擬服務(wù)器的負(fù)載,輸出計(jì)時(shí)信息,可執(zhí)行并發(fā)連接數(shù)、指定sql語(yǔ)句,否則自動(dòng)生成select語(yǔ)句【參考】
2、MySQL Benchmark Suite(sql-bench):自帶、5.7拿掉,基準(zhǔn)測(cè)試套件,用于不同數(shù)據(jù)庫(kù)服務(wù)器上進(jìn)行比較測(cè)試,單線程串行執(zhí)行,測(cè)執(zhí)行查詢的速度;包含了大量預(yù)定義測(cè)試,易使用,輕松比較不同引擎或配置的性能測(cè)試,CPU密集型的,結(jié)果會(huì)顯示哪些類型的操作在服務(wù)器上執(zhí)行更快,缺點(diǎn):測(cè)試數(shù)據(jù)集小且無(wú)法用指定的數(shù)據(jù),需要perl BDB支持;【參考】
3、Super Smack:MySQL、PostgreSQL,提供壓力測(cè)試和負(fù)載均衡,復(fù)雜而強(qiáng)大的工具,可模擬多用戶訪問(wèn),加載測(cè)試數(shù)據(jù)到庫(kù)、隨機(jī)數(shù)據(jù)填充測(cè)試表【參考】
4、Database Test Suite:類似某些工業(yè)標(biāo)準(zhǔn)測(cè)試的工具集,免費(fèi)TPC-C OLTP測(cè)試工具
5、sysbench:多線程系統(tǒng)壓測(cè),據(jù)影響數(shù)據(jù)庫(kù)服務(wù)器性能的因素評(píng)估系統(tǒng)的性能,全能測(cè)試工具,支持MySQL、操作系統(tǒng)、硬件的硬件測(cè)試【參考】【2】
MySQL的BENCHMARK()函數(shù):測(cè)試特定操作的執(zhí)行速度,參數(shù)可以是需要執(zhí)行的次數(shù)或表達(dá)式(任何標(biāo)量表達(dá)式)
此處省略n字
終于等到你~音樂(lè)起;建議至少要熟悉sysbench,如何使用oltp(比較不同系統(tǒng)性能) 和fileio 測(cè)試;經(jīng)常執(zhí)行基準(zhǔn)測(cè)試,制定一些原則很必要,選擇合適的測(cè)試工具、建立腳本庫(kù),收集信息分析結(jié)果,熟練一種繪圖工具;
以上是“MySQL如何測(cè)試”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。