#!/bin/sh ## ## an script for run tpcc-mysql testing ## ## author: yejr(imysql@imysql.com), 2012/10/08 ## ## #export LD_LIBRARY_PATH=/usr/local/mysql/lib/ . ~/.bash_profile >/dev/null 2>&1 BASEDIR="/home/tpcc-mysql" cd $BASEDIR mkdir -p $BASEDIR/logs exec 3>&1 4>&2 1>> tpcc.log 2>&1 #执行tpcc测试的数据库IP DBIP=localhost DBUSER='root' DBPASS='' #测试模式:1000个仓库 WIREHOUSE=1000 DBNAME="tpcc${WIREHOUSE}" #数据预热时间:120秒 WARMUP=120 #执行测试时长:1小时 DURING=3600 #测试模式 MODE="percona55_innodb_buf26G_1bp_1000dw_xfs_deadline_6disk_raid10" #初始化测试环境 if [ -z "`mysqlshow -h$DBIP -u$DBUSER -p$DBPASS|grep -v grep|grep \"$DBNAME\"`" ] ; then mysqladmin -h$DBIP -u$DBUSER -p$DBPASS -f create $DBNAME mysql -h$DBIP -u$DBUSER -p$DBPASS -f $DBNAME < ./create_table.sql time ./tpcc_load $DBIP $DBNAME $DBUSER $DBPASS $WIREHOUSE fi CYCLE=0 TOTAL=3 NOW=`date +'%Y%m%d%H%M'` while [ $CYCLE -lt $TOTAL ] do #测试并发线程:8 ~ 256 for THREADS in 8 16 32 64 128 256 do #重启mysqld /etc/init.d/mysql stop; echo 3 > /proc/sys/vm/drop_caches; /etc/init.d/mysql start; sleep 60 #开始执行tpcc测试 ./tpcc_start -h $DBIP -d $DBNAME -u $DBUSER -p "${DBPASS}" -w $WIREHOUSE -c $THREADS -r $WARMUP -l $DURING -f ./logs/tpcc_${MODE}_${NOW}_${THREADS}_THREADS_${CYCLE}.res >> ./logs/tpcc_runlog_${MODE}_${NOW}_${THREADS}_THREADS_${CYCLE} 2>&1 done CYCLE=`expr $CYCLE + 1` done