#!/bin/bash set -v set -x export try=${1:-1} export format=${2:-STATEMENT} export sysbench_options="--db-driver=mysql --mysql-user=root --mysql-password=mysql --test=oltp --mysql-table-engine=innodb \ --mysql-socket=/tmp/oltp_master.sock \ --num-threads=50 \ --oltp-table-size=$(( 20000000 / ${try} )) --oltp-range-size=0 \ --oltp-point-selects=0 --oltp-simple-ranges=0 --oltp-sum-ranges=0 --oltp-order-ranges=0 \ --oltp-distinct-ranges=0 --oltp-connect-delay=0 \ --oltp-nontrx-mode=update_key" mysql -u root -pmysql -S /tmp/oltp_master.sock -e "set global binlog_format=${format}"; mysql -u root -pmysql -S /tmp/oltp_slave.sock -e "START SLAVE"; for a in `seq ${try}`; do un=oltp$a; mysql -u root -pmysql -S /tmp/oltp_master.sock -e "drop database $un" || true; mysql -u root -pmysql -S /tmp/oltp_master.sock -e "create database $un"; sysbench ${sysbench_options} --mysql-db=$un --oltp-table-name=$un prepare & done while [ 1 ]; do mysql -u root -pmysql -S /tmp/oltp_slave.sock -e "SELECT SLEEP(1);SHOW SLAVE STATUS\G" 2>&1 | grep 'Seconds_Behind_Master: 0' && break done # wait until caught up mysql -u root -pmysql -S /tmp/oltp_slave.sock -e "STOP SLAVE SQL_THREAD" #for ms in master slave; do # perf record -g -o ${ms}-${format}-${try}.perf -p `cat /tmp/${ms}.pid` & #done echo -n "start: " date >> master-${format}-${try} for a in `seq ${try}`; do export un=oltp$a ( sysbench ${sysbench_options} --mysql-db=$un --oltp-table-name=$un run \ | tee -a oltp-run-${format}-${a}-${try}.sysbench; echo "end $a `date`" >> master-${format}-${try} ) & done 2>&1 | tee oltp-run-${format}-${try}.log wait echo -n "end: " date >> master-${format}-${try} date >> slave-${format}-${try} mysql -u root -pmysql -S /tmp/oltp_slave.sock -e "START SLAVE SQL_THREAD; SELECT NOW();" >> slave-${format}-${try} while [ 1 ]; do mysql -u root -pmysql -S /tmp/oltp_slave.sock -e "SELECT SLEEP(0.5);SHOW SLAVE STATUS\G" 2>&1 | grep 'Seconds_Behind_Master: 0' && break done date >> slave-${format}-${try} mysql -u root -pmysql -S /tmp/oltp_slave.sock -e "START SLAVE SQL_THREAD; SELECT NOW();" >> slave-${format}-${try}