Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Tpcc mysql使用手册 - 20120329

Tpcc mysql使用手册

  • Sé el primero en comentar

Tpcc mysql使用手册 - 20120329

  1. 1. TPCC-MySQL 使用手册 2012 年 3 月 14 日 10:48 一、 下载工具包 Tpcc-mysql 是 percona 基于 tpcc 衍生出来的产品,专用于 mysql 基准测试,其源码放在 bazaar(Bazaar 是一个分布式的版本控制系统,采用 GPL 许可协议,可运行于 Windows、 GNU/Linux、UNIX 以及 Mac OS 系统之上。Bazaar 由 Canonical 公司(Ubuntu 母公司)赞 助)上,因此还需要先安装 bazaar 客户端。 使用 root 安装 rpm 包 rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm 然后就可以开始安装 bzr 客户端了: yum install bzr 之后,就可以开始用 bzr 客户端下载 tpcc-mysql 源码了。 cd tmp bzr branch lp:~percona-dev/perconatools/tpcc-mysql 二、编译安装 编译非常简单 cd /tmp/tpcc-mysql/src make 然后就会在 /tmp/tpcc-mysql 下生成 tpcc 命令行工具 tpcc_load 、 tpcc_start 三、开始加载测试数据 初始化测试库环境 cd /tmp/tpcc-mysql mysqladmin create tpcc1000 mysql tpcc1000 < create_table.sql mysql tpcc1000 < add_fkey_idx.sql
  2. 2. 初始化完毕后,就可以开始加载测试数据了 tpcc_load 用法 tpcc_load [server] [DB] [user] [pass] [warehouse] 或者 tpcc_load [server] [DB] [user] [pass] [warehouse] [part] [min_wh] [max_wh] 选项 warehouse 意为指定测试库下的仓库数量。 因此,启动命令非常简单 ./tpcc_load localhost tpcc1000 root "" 1000 在这里,需要注意的是 tpcc 默认会读取 /var/lib/mysql/mysql.sock 这个 socket 位置,因此如 果你的 socket 不在相应路径的话,就需要做个软连接,或者通过 TCP/IP 的方式连接测试服务 器。 加载测试数据时长视仓库数量而定,可能会比较久。 四、进行测试 tpcc_start 的用法也比较简单 tpcc_start -h server_host -P port -d database_name -u mysql_user -p mysql_password -w warehouses -c connections -r warmup_time -l running_time -i report_interval -f report_file 几个选项稍微解释下 -w 指定仓库数量 -c 指定并发连接数 -r 指定开始测试前进行 warmup 的时间,进行预热后,测试效果更好 -l 指定测试持续时间 -I 指定生成报告间隔时长 -f 指定生成的报告文件名 现在我们来开启一个测试案例 tpcc_start -hlocalhost -d tpcc1000 -u root -p '' -w 1000 -c 32 -r 120 -l 3600 -ftpcc_mysql_20120314 #使用 tpcc_start 进行 16 个线程的测试,热身时间为 60 秒, 测试时间为 10 分钟, 可根据自己需 要调整 测试结果解读 time ./tpcc_start -h localhost -d tpcc1000 -u root -p '' -w 1000 -c 32 -r 120 -l 3600 -f tpcc_mysql_20120314 *************************************** *** ###easy### TPC-C Load Generator *** *************************************** option h with value 'localhost'
  3. 3. option d with value 'tpcc1000' option u with value 'root' option p with value '' option w with value '1000' option c with value '32' option r with value '120' option l with value '3600' option f with value 'tpcc_mysql_20120314' <Parameters> [server]: localhost [port]: 3306 [DBname]: tpcc1000 [user]: root [pass]: [warehouse]: 1000 [connection]: 32 [rampup]: 120 (sec.) [measure]: 3600 (sec.) RAMP-UP TIME.(120 sec.) MEASURING START. 10, 197(0):1.804|2.188, 205(0):0.435|0.574, 19(0):0.270|0.315, 19(0):1.941|2.253, 19(0):5.906|6.555 20, 198(0):1.664|1.852, 188(0):0.407|0.440, 20(0):0.209|0.210, 20(0):1.873|1.913, 21(0):5.443|5.498 …... 3600, 308(0):1.876|1.994, 312(0):0.452|0.581, 32(0):0.296|0.309, 30(0):1.924|2.093, 29(0):5.724|5.965 STOPPING THREADS................................ <Raw Results> [0] sc:93257 lt:0 rt:0 fl:0 [1] sc:93265 lt:0 rt:0 fl:0 [2] sc:9326 lt:0 rt:0 fl:0 [3] sc:9324 lt:0 rt:0 fl:0 [4] sc:9323 lt:0 rt:0 fl:0 in 3600 sec. <Raw Results2(sum ver.)>
  4. 4. [0] sc:93257 lt:0 rt:0 fl:0 [1] sc:93268 lt:0 rt:0 fl:0 [2] sc:9326 lt:0 rt:0 fl:0 [3] sc:9324 lt:0 rt:0 fl:0 [4] sc:9323 lt:0 rt:0 fl:0 <Constraint Check> (all must be [OK]) [transaction percentage] Payment: 43.48% (>=43.0%) [OK] Order-Status: 4.35% (>= 4.0%) [OK] Delivery: 4.35% (>= 4.0%) [OK] Stock-Level: 4.35% (>= 4.0%) [OK] [response time (at least 90% passed)] New-Order: 100.00% [OK] Payment: 100.00% [OK] Order-Status: 100.00% [OK] Delivery: 100.00% [OK] Stock-Level: 100.00% [OK] <TpmC> ---- TPCC 测试结果 1554.283 TpmC real 62m1.975s user 1m21.824s sys 1m44.828s 五、附录: 1. tpcc-mysql 自动化测试脚本 #!/bin/bash #export LD_LIBRARY_PATH=/usr/local/mysql/lib/ . ~/.bash_profile >/dev/null 2>&1 set -u set -x set -e BASEDIR="/home/tpcc-mysql" cd $BASEDIR mkdir -p $BASEDIR/logs
  5. 5. exec 3>&1 4>&2 1>> tpcc.log 2>&1 #执行 tpcc 测试的数据库 IP DBIP=10.25.42.33 DBUSER='tpcc' DBPASS='tpcc' #测试模式:1000 个仓库 WIREHOUSE=100 #DBNAME="tpcc${WIREHOUSE}" DBNAME=tpcc #数据预热时间:120 秒 WARMUP=120 #执行测试时长:1 小时 DURING=3600 #测试模式 MODE="ndb_9dn_100dw_memtab" #初始化测试环境 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 -e "grant all on $DBNAME.* to $DBUSER@'$DBIP' identified by '$DBPASS';" mysql -h$DBIP -u$DBUSER -p$DBPASS -f $DBNAME < ./create_table.sql ./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 #开始执行 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 >> ./lo gs/tpcc_runlog_${MODE}_${NOW}_${THREADS}_THREADS_${CYCLE} 2>&1 #重启 mysqld #/etc/init.d/mysql stop; echo 3 > /proc/sys/vm/drop_caches; /etc/init.d/mysql start; sleep 60 done
  6. 6. CYCLE=`expr $CYCLE + 1` done

×