mysql 调试分析利器_使用systemtap调试工具分析MySQL的性能
【工具】
SystemTap是 Linux 下的動(dòng)態(tài)跟蹤工具,可以方便的監(jiān)控、跟蹤運(yùn)行中的程序或Linux內(nèi)核操作,我們通過寫SystemTap腳本(與 C語言 類似),編譯為內(nèi)核模塊,然后加載到內(nèi)核中運(yùn)行,它帶來的性能損耗比較小。
【兩個(gè)應(yīng)用舉例】
一、 分析SQL語句在執(zhí)行各個(gè)階段的消耗
比如我們想統(tǒng)計(jì)一句SQL在解析階段的執(zhí)行時(shí)間,可以在mysqld進(jìn)程的對應(yīng)parse_sql函數(shù)上加探測點(diǎn),統(tǒng)計(jì)函數(shù)執(zhí)行時(shí)間
腳本如下:
示例如下,當(dāng)前QPS約1.6W,包含了SQL執(zhí)行過程中解析、redo、binlog、undo、網(wǎng)絡(luò)、IO讀、IO寫上的消耗,由于涉及的函數(shù)較多,這部分后續(xù)還需要整理完善。
也可以用來分析一句SQL的執(zhí)行性能
二、SQL執(zhí)行時(shí)間統(tǒng)計(jì)分布
對于應(yīng)用來說,主要關(guān)心 數(shù)據(jù)庫 的吞吐量和響應(yīng)時(shí)間,下面從應(yīng)用負(fù)載的角度去衡量,服務(wù)器上當(dāng)前執(zhí)行SQL語句的性能分布情況
下圖是1秒聚合的SQL語句的執(zhí)行時(shí)間分布圖,表示大部分SQL的執(zhí)行時(shí)間在128us以下
【性能開銷】
用sysbench做了簡單壓測,并發(fā)8線程時(shí),運(yùn)行stap腳本QPS從3.5W降到3.3W,性能損耗約6%;當(dāng)并發(fā)32線程時(shí),運(yùn)行stap腳本QPS從9W降到7W,性能損耗約22%
【應(yīng)用場景】
Systemtap功能非常強(qiáng)大,可以對mysqld進(jìn)程下近25000個(gè)函數(shù)以及kernel下35000個(gè)函數(shù)自定義腳本進(jìn)行跟蹤統(tǒng)計(jì),可用來分析內(nèi)存、CPU、IO、網(wǎng)絡(luò)等各種問題。
SystemTap的使用可以參考下面的文章:
1、聽阿里云CDN安防技術(shù)專家金九講SystemTap使用技巧
2、巧用Systemtap注入延遲模擬IO設(shè)備抖動(dòng)
3、MYSQL數(shù)據(jù)庫網(wǎng)卡軟中斷不平衡問題及解決方案
總結(jié)
以上是生活随笔為你收集整理的mysql 调试分析利器_使用systemtap调试工具分析MySQL的性能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 5.3 build4.234
- 下一篇: mysql 4 基础教程_MySQL基础