繪圖的重要性
如果你想要統治世界就必須不斷地利用陰謀注而最簡單有效的圖形就是將性能指標按照時間順序繪制通過圖形可以立刻發現一些問題而這些問題在原始數據中卻很難被注意到或許你會堅持看測試工具打印出來的平均值或其他匯總過的信息但平均值有時候是沒有用的它會掩蓋掉一些真實情況幸運的是前面寫的腳本的輸出都可以定制為gnuplot或者R繪圖的數據來源假設使用gnuplot假設輸出的數據文件名是QPSperseconds:
gnuplot>plot QPSperseconds using w lines title QPS
該gnuplot 命令將文件的第五列qps 數據繪成圖形圖的標題是QPS圖 是繪制出來的結果圖
下面我們討論一個可以更加體現圖形價值的例子假設MySQL 數據正在遭受瘋狂刷新(furious flushing)的問題在刷新落後於檢查點時會阻塞所有的活動從而導致吞吐量嚴重下跌% 的響應時間和平均響應時間指標都無法發現這個問題也就是說這兩個指標掩蓋了問題但圖形會顯示出這個周期性的問題請參考圖
圖 顯示的是每分鐘新訂單的交易量(NOTPMneworder transactions per minute)從曲線可以看到明顯的周期性下降但如果從平均值(點狀虛線)來看波動很小一開始的低谷是由於系統的緩存是空的而後面其他的下跌則是由於系統刷新髒塊到磁盤導致如果沒有圖形要發現這個趨勢會比較困難
這種性能尖刺在壓力大的系統比較常見需要調查原因在這個案例中是由於使用了舊版本的InnoDB 引擎髒塊的刷新算法性能很差但這個結論不能是想當然的需要認真地分析詳細的性能統計在性能下跌時SHOW ENGINE INNODB STATUS的輸出是什麼?SHOW FULL PROCESSLIST 的輸出是什麼?應該可以發現InnoDB 在持續地刷新髒塊並且阻塞了很多狀態是waiting on query cache lock的線程或者其他類似的現象在執行基准測試的時候要盡可能地收集更多的細節數據然後將數據繪制成圖形這樣可以幫助快速地發現問題
返回目錄高性能MySQL
編輯推薦
ASP NET開發培訓視頻教程
數據倉庫與數據挖掘培訓視頻教程
Oracle索引技術
From:http://tw.wingwit.com/Article/program/MySQL/201311/29734.html