MySQL執行狀態監控(pt-mysql-summary)

壹頁書發表於2014-07-18
pt-mysql-summary也是percona-toolkit-2.2.8-1.noarch.rpm工具集的一部分。

安裝工具集:
http://blog.itpub.net/29254281/viewspace-1208415/

MySQL的show status命令 僅僅是一個狀態的計數器。
通常情況下,需要採集一個間隔的show status命令,然後分析它的趨勢。

一定時間間隔的採集可以使用mysqladmin extended-status
但是更簡單的方法是使用pt-mysql-summary工具。

關於pt-mysql-summary工具的介紹請參考:
http://www.cnblogs.com/zhoujinyi/p/3384667.html

下面的指令碼通過一個時間間隔的狀態採集,
得到這個間隔的增、刪、改、查、提交、回滾的總數,然後通過gnuplot畫圖工具,繪製出圖形。

指令碼如下(Probe.sh):

#!/bin/bash
#採集間隔時間,單位s
asleep=10
user=root
password=root
probe_file=probe.log
output_image=/tmp/probe.png
while [ 1 ] ; do
    a=$(pt-mysql-summary --user $user --password $password | grep -i "com_insert\|com_delete\|com_update\|com_select\|com_commit\|com_rollback" | awk     '{if(length($4)==0) print 0 ;else print $4}' | tr -t '\n' ' '); echo $(date "+%Y-%m-%d_%H:%M:%S") $a >> $probe_file

    gnuplot -e "set terminal png size 3000,1000 ; set size ratio 0.9 ; set output '$output_image' ; set xtic rotate by 90 ; set xdata time ; set grid;set     timefmt '%Y-%m-%d_%H:%M:%S' ; plot 'probe.log' using 1:2 with line title 'Commit', 'probe.log' using 1:3 with line title 'Delete', 'probe.log' using     1:4 with line title 'insert','probe.log' using 1:5 with line title 'rollback','probe.log' using 1:6 with line title 'select','probe.log' using 1:7 with     line title 'update' ; "

done;

執行指令碼,並且使用TPCC-MySQL基準測試工具開始測試(加一些流量容易看出效果)

TPCC-MySQL
http://blog.itpub.net/29254281/viewspace-1195589/

關於Gnuplot畫圖工具的簡單使用
http://www.heboliang.cn/archive/timedata_gnuplot.html

檢視繪圖的結果:


Gnuplot
set size ratio 0.9         Y軸:X軸 的比值
set xtic rotate by 90    X軸的文字旋轉90度


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1222337/,如需轉載,請註明出處,否則將追究法律責任。

相關文章