使用sysbench对MySQL进行压力测试(3)

#!/bin/sh
#开始前获取全局配置参数
#每五秒获取一次cpu load,MySQL全局信息,InnoDB引擎相关信息,线程信息
INTERVAL=5
PREFIX=$INTERVAL-sec-status
RUNFILE=/root/running
mysql -e 'show global variables'>>mysql-variables

#通过检测 /root/running文件是否存在作为是否进行获取信息的依据,可以在压测结束时删除此文件停止收集
while  test -e $RUNFILE; do
        file=$(date +%F_%H)
        sleep=$(date +%s.%N |awk "{print $INTERVAL -(\$1 % $INTERVAL)}")
        sleep $sleep
        ts="$(date +"TS %s.%N %F %T")"
        loadavg="$(uptime)"                                #通过uptime命令获取cpu load
        echo "$ts $loadavg">> $PREFIX-${file}-status
        mysql -e "show global status" >> $PREFIX-${file}-status &  #获取MySQL全局信息
        echo "$ts $loadavg">> $PREFIX-${file}-innodbstatus
        mysql -e "show engine innodb status\G" >> $PREFIX-${file}-innodbstatus &    #获取引擎信息
        echo "$ts $loadavg">> $PREFIX-${file}-processlist
        mysql -e "show full processlist\G" >>$PREFIX-${file}-processlist &  #获取线程信息
        echo $ts
done
echo Exiting because $RUNFILE not exist   

对上一步收集到的全局信息进行分析。

#!/bin/sh
awk '
        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
                }
                ' "$@"

运行方式:sh hi_anaylyze.sh 5-sec-status-2018-02-22_14_status >>4plot.log (将分析后的结果记入4plot.log中)

同样使用gnupot进行绘图分析:

gunplot>plot '4plot' using 5 with lines title 'QPS', 4 with lines title 'load'
        #using 5 表示使用第5列数据作图
        #with lines 定义图中的趋势使用线来表示
        #title 'QPS' 定义线的名称
        #使用,(逗号)分割,进行多列数据的绘制

gnuplot绘图示例

使用sysbench对MySQL进行压力测试

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/1e253d939222415d1aae9834a23d9d5f.html