伯樂線上注:本文來自文章作者@IT技術櫻花祭 的投稿(原文連結)。如果其他朋友也想投稿,請發郵件至 webmaster@jobbole.com,或直接給@伯樂線上官方微博 私信投遞。
———————————————————-
為什麼需要基準測試:
- 可以獲知MySQL的工作負荷
- 獲取系統對不對事物處理的效能表現
-
搭建的虛擬環境,遠遠超過現實的針對的狀況 所能獲取的資訊<wbr> - 降低風險,模擬評估硬體需求,降低調整帶來的風險
- 在環境變動時的效能表現,如不同服務配置下的併發效能、使用者高峰時期,或者低峰期時的效能表現、對不同資料處理的效能等。
測試策略
- 整合式基準測試(full-stack):將整個應用作為整體來做基準測試
- 單件式基準測試(single-componet),單獨測出MySQL系統
整合式基準測試的原因
1.系統也許影響效能的不是MySQL瓶頸問題
2.Web伺服器,網路條件,資料庫,應用程式的程式碼都有可能影響效能, 測試不僅僅是評估MySQL的效能,而是整個系統的效能
3.整體測試可以獲得系統各部分快取記憶體的效能報告
4.可以獲得系統真是的效能表現, 而不僅僅是MySQL部分
一些問題: 整體測試複雜,需要更多的時間,工作量,難度也更加。另外基準測試的報告資料也許不能反映真實系統的效能表現。
單件式基準測試
1.只想知道MySQL的效能:如查詢(Query)、快取(Cache)等問題
2.給出系統的一個效能快照,快速的改進系統
基準測試前,應當確認需要測試目標,這樣就可以決定是用什麼工具,並安排測試計劃。
主要考慮一下測試度量標準評估測試目標:
1.吞吐量(throughput)
2.響應時間和延遲(Response time or latency)
3.併發性(Concurrency)
作 為系統的併發性一般被認為是同一時間多少使用者訪問網站,網站的併發量不代表MySQL資料庫的併發量。 更準確的度量是某峰值時間使用者同時可以產生多少併發請求。影響併發性的因素是多樣的,伺服器軟體被指也會影響併發的效能,建站開發語言也會影響併發效能。 另外也許伺服器有上千個MySQL連線,但實際上只有連線幾個同時在進行查詢,更新等操作而已。
4.擴充性(Scalability)
對於工作負荷量變化的系統,擴充性是非常重要的。
一般建議需要滿足兩倍性。 如需要提供能應付事務平均吞吐量兩倍的系統,兩倍的資源(如處理器,記憶體等)。
另外可以通過時序表(資料表,直方圖,彙總表)統計響應時間,吞吐量等,作為參考度量擴充性是否滿足要求。
基準測試常用工具
Full-stack tool
ab
http_load
http_load runs multiple http fetches in parallel, to test the throughput of a web server. However unlike most such test clients, it runs in a single process, so it doesn’t bog down the client machine. It can be configured to do https fetches as well.
The
Single-Component Tools
1.mysqlslap (http://dev.mysql.com/doc/refman/5.1/en/mysqlslap.html)
2.MySQL Benchmark Suite (sql-bench)
3.Super Smack
4.Database Test Suite
5.Percona’s TPCC-MySQL Tool
6.sysbench (https://launchpad.net/sysbench) is a multithreaded system benchmarking tool.
基準測試注意事項
1.忌諱:
A.100G的資料,實際上只用到1G的測試資料
B.多使用者系統,只測試單使用者資料
C.分散式系統,卻只測試單伺服器。
D.使用相同的查詢資料,迴圈測試。實際中的查詢是不可能的,這會改變資料庫系統的快取內容單資料卻會被快取
E.忽略測試錯誤,故障的系統的基準測試沒有任何意義。
F.以及常見一些牛頭不對馬面的資料測試, 比如使用不真實的資料,只會浪費測試時間和資金。
G. 請不要委託免費的測試組織測試
……….
2.設計與計劃
A.需要設計達到什麼樣,比如高併發性,高吞吐量等
B.發話太多不寫了
3.怎麼確定測試周期與時間多長為適宜(相信測試獲得的資料,不要半途而廢,那樣還不如不做測試。一般測試但滿意為止)
3.獲取系統效能與狀態
4. 獲取正確的與需要資訊。 (如果一時無法確認需要什麼,儘可能獲取足夠多的資料)
5.實用工具分析,度量效能。
關於資料分析與統計學的知識,請務必掌握瞭解。