这个脚本挺好用的,例如我们在主库执行了一个大事务,结果导致从库的show slave status\G 一直卡在 system lock状态,我们用下面这个脚本就能知道到底是hang住了,还是只是执行缓慢(反应在脚本执行结果里面就是qps\tps是不停变动的)。
当然,从库一直处于system lock 状态,一般是因为我们从库也设置双1导致,只要临时将双1改掉即可很快解决掉slave lag的问题。
脚本如下:
#!/bin/bash
# 每秒钟获取一次MySQL运行的TPS、QPS,直接输出到屏幕
# Date: 2017/03/25
#
source /etc/profile
USER=’root’
PASSWD=’123456′
if ! mysqladmin -u $USER -p$PASSWD ping > /dev/null 2>&1 ; then
exit 10
else
mysqladmin -u$USER -p$PASSWD 2>/dev/null extended-status -i1|awk ‘BEGIN{local_switch=0;print “QPS Commit Rollback TPS Threads_con Threads_run \n——————————————————- “}
$2 ~ /Queries$/ {q=$4-lq;lq=$4;}
$2 ~ /Com_commit$/ {c=$4-lc;lc=$4;}
$2 ~ /Com_rollback$/ {r=$4-lr;lr=$4;}
$2 ~ /Threads_connected$/ {tc=$4;}
$2 ~ /Threads_running$/ {tr=$4;
if (local_switch==0)
{local_switch=1; count=0}
else {
if (count>10)
{count=0;print “——————————————————- \nQPS Commit Rollback TPS Threads_con Threads_run \n——————————————————- “;}
else {
count+=1;
printf “%-6d %-8d %-7d %-8d %-10d %d \n”, q,c,r,c+r,tc,tr;
}
}
}’
fi
原创文章,作者:lirulei,如若转载,请注明出处:http://www.178linux.com/74876