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

#初始次数
round=0
# 一般至少跑3轮测试,我正常都会跑10轮以上
while [ $round -lt 4 ]
do
#每回合日志位置:
rounddir=$BASEDIR/logs-round${round}
mkdir -p ${rounddir}

for thread in `echo "${THERAD_NUMBER}"`
do
#常用可选项:
#oltp_read_only            #只读
#oltp_read_write            #读写兼有
#oltp_update_non_index      #无主键更新情形
sysbench /usr/share/sysbench/oltp_read_only.lua \
  --mysql-host=$DBIP \
  --mysql-port=$DBPORT \
  --mysql-user=$DBUSER \
  --mysql-password=$DBPASSWD \
  --mysql-db=$DBNAME \
  --db-driver=mysql \
  --tables=$TBLCNT \
  --table-size=$ROWS \
  --report-interval=$REPORT_INTERVAL \
  --threads=${thread} \
  --rand-type=uniform \                #数据随机类型:uniform,均匀的
  --time=$DURING run >> ${rounddir}/sysbench_${thread}.log

sleep 300                  #不同的线程数压测之间停顿5分钟
done

round=`expr $round + 1`
sleep 300                  #每轮压测之间停顿5分钟
done


​ 运行完毕后在预设的数据目录下可以找到sysbench输出的日志。

3.结果分析与绘图

​可以直接阅读sysbench日志给出的总结,也可以对其中个别项的数据进行绘图观察趋势。

SQL statistics:
    queries performed:
        read:                            142870
        write:                          0
        other:                          20410
        total:                          163280
    transactions:                        10205  (5.66 per sec.)
    queries:                            163280 (90.53 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          1803.6625s
    total number of events:              10205

Latency (ms):
        min:                              3113.18
        avg:                              11303.55
        max:                              24222.47
        95th percentile:                  16819.24
        sum:                            115352747.29

Threads fairness:
    events (avg/stddev):          159.4531/1.51
    execution time (avg/stddev):  1802.3867/1.03
#我使用的是硬件资源十分有限的虚拟机,压测结果有点扎心。

​安装gnuplot进行绘图,gnuplot需要图形环境,可以选择在windows上安装,也可以在施压客户机上安装图形界面。这里选择在linux施压客户机上安装图形界面。

dnf -y install @xfce-desktop #安装图形界面

yum -y install gnuplot #安装gnuplot

gnuplot  #进入gnuplot终端

gnuplot>plot 'output/sysbench_8.log' using  9 w lines title 'QPS'
        #using 5 表示使用第5列数据作图
        #with lines 定义图中的趋势使用线来表示
        #title 'QPS' 定义线的名称
        #使用,(逗号)分割,进行多列数据的绘制

图形如下:只读压测QPS图形

使用sysbench对MySQL进行压力测试

通过其他脚本观察sysbench压测过程中的系统信息和数据库信息(来源于《高可用 MySQL》)

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

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