天天看點

MySQL監控InnoDB Buffer Pool命中率

參加煉數成金的MySQL教育訓練,這是其中的一個作業題.

原來做過類似的監控

http://blog.itpub.net/29254281/viewspace-1222337/

首先,使用腳本進行資料采集

vim /tmp/probe.sh

#!/bin/bash

#采集間隔時間,機關s

asleep=10

user=root

password=root

probe_file=probe.log

while [ 1 ] ; do

    a=$(pt-mysql-summary --user $user --password $password --sleep

$asleep | grep -i

"Innodb_buffer_pool_read_requests\|Innodb_buffer_pool_reads" | awk

'{if(length($3)==0) print 0 ;else print $3}'| tr -t '\n' ' '); 

    Innodb_buffer_pool_read_requests=$(echo $a | awk '{print $1}')

    Innodb_buffer_pool_reads=$(echo $a | awk '{print $2}')

    Innodb_buffer_read_hit_ratio=$(echo "scale=2; ((1 -

$Innodb_buffer_pool_reads/$Innodb_buffer_pool_read_requests) * 100)" |

bc)

    echo $(date "+%Y-%m-%d_%H:%M:%S") $Innodb_buffer_read_hit_ratio >> $probe_file

done;

然後準備繪制圖形的腳本

vim probe.gp

set terminal png size 3000,1000 font '/usr/share/fonts/wqy-zenhei/wqy-zenhei.ttc,14';

set yrange [0:100]

set size ratio 0.9 ; 

set output '/tmp/probe.png' ; 

set xdata time ; 

set grid;

set timefmt '%Y-%m-%d_%H:%M:%S' ; 

set xlabel "時間"

set ylabel "命中率"

plot '/tmp/probe.log' using 1:2 with line title 'InnoDB Buffer Pool命中率'

每次需要檢視InnoDB Buffer Pool命中率的時候,執行指令

MySQL監控InnoDB Buffer Pool命中率

然後檢視繪制的圖形

MySQL監控InnoDB Buffer Pool命中率

http://blog.itpub.net/29254281/viewspace-1278514/

seo優化技術

繼續閱讀