MySQL压力测试工具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL压力测试工具相关的知识,希望对你有一定的参考价值。

工具名称:mysqlha_sysbench.sh

工具用途:用于MySQL压力测试  (2种功能:填充数据&&测试数据)

工具参数:

options:

-P 需要测试的端口
-D 需要测试的db名字
-H 需要测试的host
-S 填充&&测试 表的数据量,default 100w
-C 填充&&测试 表的数量, default 1
-T prepare and run ,prepare is 制造数据 run is 开始测试 ,default run
-O on and off, on 是读写混合模式 off是只读模式 ,default on
-B 并发数 default 1
-Y 测试时间 ,填充时不用填写 default 1800#半小时 
-N test number 测试的数量 例如 128线程跑3次

 

工具示例: 

Example: Usage make(填充数据) data:mysqlha_sysbench.sh -P 端口 -D db -H ip -T prepare 
Example: Usage test (测试数据)data:mysqlha_sysbench.sh -P 端口 -D db -H ip -B 并发数  -Y 测试时间 -N 次数


注意事项:

1)权限问题    使用myadmin账号,注意授权

2)本地必须安装sysbench 路径在/usr/local/xywy/sysbench/bin/ 

工具执行结果:

技术分享




#!/bin/bash

# Author: [email protected]

# Date: 2016-09-02



# helpfunc shows the help info

function helpfunc(){

        echo 

         echo "Please check your input!!!!"

         echo "options:"

         echo " -P      test port"

         echo " -D      databases name"

         echo " -H      test host"

         echo " -S      table size   ,default 100w"

         echo " -C      test table number ,  default 1"

         echo " -T      prepare and run ,prepare is 制造数据 run is 开始测试  ,default run"

         echo " -O      on and off, on 是读写混合模式 off是只读模式  ,default on"

         echo " -B      并发数 default 1"

         echo " -Y       Test time in seconds  default 1800#半小时 "

         echo " -N       test number "


         echo "  Example:  Usage make data:mysqlha_sysbench.sh -P  -D  -H  -T  "

         echo "  Example:  Usage test data:mysqlha_sysbench.sh -P  -D  -H  -B  -Y  "


}

############################################

. /etc/dbbin/sh_lib/config.sh "/etc/dbbin/conf/mysql.cfg"

user="myadmin";

password=`getConfig "mysql" $user`


bfs=1

option="on"

time=1800

number=1

if [ $# -lt 1 ] ;

    then

        helpfunc

         exit 1

else

                        P) port=$OPTARG;;

                        D) db=$OPTARG;;

                        H) host=$OPTARG;;

                        S) size=$OPTARG;;

                        C) count=$OPTARG;;

                        T) type=$OPTARG;;

                        O) option=$OPTARG;;

                        B) bfs=$OPTARG;;

                        Y) time=$OPTARG;;

                        N) number=$OPTARG;;

                         *) helpfunc; exit 1; ;;

                esac

        done


fi


date=`date "+%Y-%m-%d"`

function test_data(){

        if [ "$type" == "prepare" ];then

                /usr/local/xywy/sysbench/bin/sysbench --test=/usr/local/xywy/sysbench/db/oltp.lua --oltp-table-size="$size" --oltp-table-name=tt --mysql-db=$db --mysql-port=$port  --mysql-host=$host  --mysql-user=$user --mysql-password=$password  --oltp_tables_count=$count --oltp-test-mode=complex --rand-type=uniform --rand-init=on --report-interval=10 --percentile=99 prepare >> /data/logs/sysbench_oltp$date.log

                if [ $? -ne 0 ] ; then

                        echo "insert data failure!"

                        exit -1

                else

                        echo "insert $count data is sucess"

                fi

        elif [ "$type" == "run" ];then

                for i in $(seq 1 $number)

                do

                        /usr/local/xywy/sysbench/bin/sysbench --test=/usr/local/xywy/sysbench/db/oltp.lua --oltp-table-size=$size   --mysql-db=$db --mysql-port=$port  --mysql-host=$host  --mysql-user=$user --mysql-password=$password  --oltp_tables_count=$count --oltp-read-only=$option --oltp-test-mode=complex --rand-type=uniform --rand-init=on --num-threads=$bfs --max-time=$time --max-requests=0 --report-interval=10 --percentile=99 run >> /data/logs/sysbench_oltp$date.log

                        if [ $? -ne 0 ] ; then

                                echo " Test failure!"

                                exit -1

                        else

                                log=`cat /data/logs/sysbench_oltp$date.log|grep transactions: -B 10|grep $bfs -A10`

                                echo " Concurrent for $bfs of the results is $log "

                        fi

                done

        else

                helpfunc

        fi

}


test_data


本文出自 “10937712” 博客,请务必保留此出处http://10947712.blog.51cto.com/10937712/1845560

以上是关于MySQL压力测试工具的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 压力测试工具

MySQL压力测试工具使用

MySQL 之压力测试工具

MySQL 之压力测试工具

mysql之 mysql数据库压力测试工具(mysqlslap)

mysqlslap 压力测试使用总结