收集mysql负载shell脚本

来源:互联网 发布:知乎怎么设置隐私 编辑:程序博客网 时间:2024/06/05 14:46
#!/bin/shINTERVAL=5PREFIX=$INTERVAL-sec-statusRUNFILE=/root/1.txtmysql -uroot -p123456 -e 'SHOW GLOBAL VARIABLES' >> mysql-variableswhile test -e $RUNFILE; do file=$(date +%F_%I) sleep=$(date +%s.%N | awk "{print $INTERVAL - (\$1 % $INTERVAL)}") sleep $sleep ts="$(date +"TS %s.$N %F %T")" loadavg="$(uptime)" echo "$ts $loadavg" >> $PREFIX-${file}-status mysql -uroot -p123456 -e 'SHOW GLOBAL STATUS' >> $PREFIX-${file}-status & echo "$ts $loadavg" >> $PREFIX-${file}-innodbstatus mysql -uroot -p123456 -e 'SHOW ENGINE INNODB STATUS\G' >> $PREFIX-${file}-innodbstatus & echo "$ts $loadavg" >> $PREFIX-${file}-processlist mysql -uroot -p123456 -e 'SHOW FULL PROCESSLIST\G' >> $PREFIX-${file}-processlist & echo $tsdoneecho Exiting because $RUNFILE does not exist.

查看负载脚本:

#!/bin/shawk ' BEGIN{        printf "#ts date time load QPS";        fmt = " %.2f";        } /^TS/{# The timestamp lines begin with TS.  ts    =substr($2, 1, index($2,".")-1);  load  =NF -2;  diff  =ts - prev_ts;  prev_ts = ts;  printf "\n%s %s %s %s",ts,$3,$4,substr($load, 1, length($load)-1);}/Queries/{        printf fmt,($2-Queries)/diff;        Queries=$2}' "$@"

如果想看画图,可以使用linux上的绘图工具yum -y install gnuploat*

gnuplot> plot "1.txt" using 5 w lines title "QPS"

0 0
原创粉丝点击