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压力测试工具的主要内容,如果未能解决你的问题,请参考以下文章