158 lines
8.7 KiB
Bash
Executable File
158 lines
8.7 KiB
Bash
Executable File
# Copyright (c) 2020, Alibaba Group Holding Limited
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
# 3 Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
BASEPATH=$(cd `dirname $0`; pwd)
|
|
cd $BASEPATH
|
|
source ./config.sh
|
|
source ./check_result.sh
|
|
|
|
export LD_LIBRARY_PATH=/usr/local/gcc-5.3.0/lib64/:$INSTALL_PATH/lib:$LD_LIBRARY_PATH
|
|
echo $LD_LIBRARY_PATH
|
|
# check server can be connected
|
|
$INSTALL_PATH/bin/mysql -S $DATA_PATH/mysql1.sock --port=$SVR_PORT -uroot mysql -e "SELECT \"CONNECTED\"" > /dev/null
|
|
echo check_connect command: $INSTALL_PATH/bin/mysql -s $DATA_PATH/mysql1.sock --port=$SVR_PORT -uroot mysql
|
|
check_result "Error, can not connect to server"
|
|
|
|
# record cpu/io metric
|
|
cd $BASEPATH
|
|
sh record_cpu_io.sh
|
|
check_result "Error, record cpu, io metric failed"
|
|
|
|
# run sysbench
|
|
cd $SYSBENCH_PATH
|
|
|
|
SYSBENCH_RESULT_FILE_NAME=$BASEPATH/sysbench_result.out
|
|
SYSBENCH_RESULT_SHOW_FILE_NAME=$BASEPATH/sysbench_result_show.out
|
|
|
|
#cat $BASEPATH/create_sbtest.sql
|
|
$INSTALL_PATH/bin/mysql -S $DATA_PATH/mysql1.sock --port=$SVR_PORT -uroot mysql -e "source $BASEPATH/create_sbtest.sql;"
|
|
echo create_sbtest command: $INSTALL_PATH/bin/mysql -S $DATA_PATH/mysql1.sock --port=$SVR_PORT -uroot mysql -e "source $BASEPATH/create_sbtest.sql;"
|
|
check_result "Error, create sbtest user error"
|
|
|
|
export MYSQL_PWD=sbtest # mysql password
|
|
echo "try to reset sbtest database"
|
|
$INSTALL_PATH/bin/mysql -h $SVR_IP -P $SVR_PORT -usbtest -e "DROP DATABASE IF EXISTS sbtest;"
|
|
echo "try to re-create database sbtest"
|
|
$INSTALL_PATH/bin/mysql -h $SVR_IP -P $SVR_PORT -usbtest -e "CREATE DATABASE IF NOT EXISTS sbtest;"
|
|
#$INSTALL_PATH/bin/mysql -h $SVR_IP -P $SVR_PORT -usbtest -e "SHOW DATABASES;"
|
|
|
|
echo "try to create test tables"
|
|
for table_id in `seq 1 $SYSBENCH_TABLE_NUM`
|
|
do
|
|
$INSTALL_PATH/bin/mysql -h $SVR_IP -P $SVR_PORT -usbtest -e \
|
|
"USE sbtest;\
|
|
CREATE TABLE IF NOT EXISTS sbtest$table_id (id BIGINT NOT NULL AUTO_INCREMENT,
|
|
k INT(10) UNSIGNED NOT NULL DEFAULT '0',
|
|
c CHAR(120) COLLATE UTF8MB4_BIN NOT NULL DEFAULT '',
|
|
pad CHAR(60) NOT NULL DEFAULT '' COLLATE UTF8MB4_BIN,
|
|
PRIMARY KEY (id) COMMENT 'cf_pri_$table_id',
|
|
KEY k_1(k) COMMENT 'cf_key_$table_id',
|
|
KEY k_2(pad))
|
|
ENGINE=$SYSBENCH_ENGINE;"
|
|
done
|
|
|
|
#$INSTALL_PATH/bin/mysql -h $SVR_IP -P $SVR_PORT -usbtest -e "USE sbtest; SHOW TABLES"
|
|
echo "" > $RUNNING_CONFIG_FILE
|
|
$INSTALL_PATH/bin/mysql -h $SVR_IP -P $SVR_PORT -usbtest -e "SHOW VARIABLES LIKE 'log_bin';" >> $RUNNING_CONFIG_FILE
|
|
$INSTALL_PATH/bin/mysql -h $SVR_IP -P $SVR_PORT -usbtest -e "SHOW VARIABLES LIKE 'sync_binlog';" >> $RUNNING_CONFIG_FILE
|
|
$INSTALL_PATH/bin/mysql -h $SVR_IP -P $SVR_PORT -usbtest -e "SHOW VARIABLES LIKE 'xengine_flush_log_at_trx_commit';" >> $RUNNING_CONFIG_FILE
|
|
$INSTALL_PATH/bin/mysql -h $SVR_IP -P $SVR_PORT -usbtest -e "SHOW VARIABLES LIKE 'general_log';" >> $RUNNING_CONFIG_FILE
|
|
$INSTALL_PATH/bin/mysql -h $SVR_IP -P $SVR_PORT -usbtest -e "SHOW VARIABLES LIKE 'order_commit';" >> $RUNNING_CONFIG_FILE
|
|
|
|
|
|
# Configure your server HERE
|
|
# Configure your server HERE
|
|
# Configure your server HERE
|
|
$INSTALL_PATH/bin/mysql -h $SVR_IP -P $SVR_PORT -usbtest -e "SET GLOBAL slow_query_log=ON;" >> $RUNNING_CONFIG_FILE
|
|
$INSTALL_PATH/bin/mysql -h $SVR_IP -P $SVR_PORT -usbtest -e "SET GLOBAL long_query_time=0.01;" >> $RUNNING_CONFIG_FILE
|
|
|
|
cat $RUNNING_CONFIG_FILE
|
|
|
|
SYSBENCH_TEST_START_TIME=`date`
|
|
|
|
cd $SYSBENCH_BIN_PATH/lua/
|
|
echo sysbench result file name: $SYSBENCH_RESULT_FILE_NAME
|
|
echo sysbench path = $SYSBENCH_BIN_PATH/sysbench
|
|
|
|
echo "ensure pipe $PIPE_NAME"
|
|
if [[ ! -p $PIPE_NAME ]]; then
|
|
mkfifo $PIPE_NAME
|
|
fi
|
|
|
|
if [[ $WITH_SQLCHART ]]; then
|
|
echo "put to $PIPE_NAME to nofity sqlchart sample"
|
|
echo "start run sysbench" > $PIPE_NAME
|
|
fi
|
|
|
|
echo "Start to Run Sysbench........"
|
|
|
|
#$SYSBENCH_BIN_PATH/sysbench oltp_insert.lua --time=$SYSBENCH_MAX_TIME --mysql-host=$SVR_IP --mysql-port=$SVR_PORT --auto-inc=0 --thread-init-timeout=1000 --mysql-db=sbtest --mysql-user=sbtest --mysql-password=sbtest --table-size=$SYSBENCH_TABLE_SIZE --db-ps-mode=auto --tables=$SYSBENCH_TABLE_NUM --report-interval=1 --threads=$SYSBENCH_THREAD_NUM --prepare=true run 2>&1 > $SYSBENCH_RESULT_FILE_NAME
|
|
if [[ $OLTP_CASE_NAME == oltp_insert.lua ]]; then
|
|
$SYSBENCH_BIN_PATH/sysbench $OLTP_CASE_NAME --time=$SYSBENCH_MAX_TIME --mysql-host=$SVR_IP --mysql-port=$SVR_PORT --auto-inc=0 --thread-init-timeout=1000 --mysql-db=sbtest --mysql-user=sbtest --mysql-password=sbtest --table-size=$SYSBENCH_TABLE_SIZE --db-ps-mode=auto --tables=$SYSBENCH_TABLE_NUM --report-interval=1 --threads=$SYSBENCH_THREAD_NUM run 2>&1 > $SYSBENCH_RESULT_FILE_NAME
|
|
elif [[ $OLTP_CASE_NAME == oltp_write_only.lua ]]; then
|
|
$SYSBENCH_BIN_PATH/sysbench $OLTP_CASE_NAME --time=$SYSBENCH_MAX_TIME --mysql-host=$SVR_IP --mysql-port=$SVR_PORT --auto-inc=0 --thread-init-timeout=1000 --mysql-db=sbtest --mysql-user=sbtest --mysql-password=sbtest --table-size=$SYSBENCH_TABLE_SIZE --db-ps-mode=auto --tables=$SYSBENCH_TABLE_NUM --report-interval=1 --threads=$SYSBENCH_THREAD_NUM --mysql-ignore-errors=1062 run 2>&1 > $SYSBENCH_RESULT_FILE_NAME
|
|
else
|
|
echo "start sysbench prepare"
|
|
$SYSBENCH_BIN_PATH/sysbench $OLTP_CASE_NAME --time=$SYSBENCH_MAX_TIME --mysql-host=$SVR_IP --mysql-port=$SVR_PORT --auto-inc=0 --thread-init-timeout=1000 --mysql-db=sbtest --mysql-user=sbtest --mysql-password=sbtest --table-size=$SYSBENCH_TABLE_SIZE --db-ps-mode=auto --tables=$SYSBENCH_TABLE_NUM --report-interval=1 --threads=$SYSBENCH_THREAD_NUM prepare 2>&1 > $SYSBENCH_RESULT_FILE_NAME
|
|
echo "start sysbench run"
|
|
$SYSBENCH_BIN_PATH/sysbench $OLTP_CASE_NAME --time=$SYSBENCH_MAX_TIME --mysql-host=$SVR_IP --mysql-port=$SVR_PORT --auto-inc=0 --thread-init-timeout=1000 --mysql-db=sbtest --mysql-user=sbtest --mysql-password=sbtest --table-size=$SYSBENCH_TABLE_SIZE --db-ps-mode=auto --tables=$SYSBENCH_TABLE_NUM --report-interval=1 --threads=$SYSBENCH_THREAD_NUM run 2>&1 > $SYSBENCH_RESULT_FILE_NAME
|
|
fi
|
|
|
|
cat $SYSBENCH_RESULT_FILE_NAME
|
|
|
|
run_sysbench_ret=$?
|
|
|
|
if [ $run_sysbench_ret -ne 0 ]; then
|
|
echo "run sysbench error, shell run ret=$run_sysbench_ret" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
exit 1
|
|
fi
|
|
|
|
|
|
SYSBENCH_TEST_END_TIME=`date`
|
|
|
|
# report test information for bianque
|
|
process=$(ps -elf | grep mysqld | grep "$DATA_PATH/mysql1.sock")
|
|
echo "Test information For bianque"
|
|
echo "> ip: $SVR_IP"
|
|
echo "> mysqld process id: $MYSQLD_PROCESS_ID"
|
|
echo "> start time: $SYSBENCH_TEST_START_TIME"
|
|
echo "> end time: $SYSBENCH_TEST_END_TIME"
|
|
|
|
#echo "" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
#echo "" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
#echo "" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
#echo "** **" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
#echo "## $OLTP_CASE_NAME $SYSBENCH_ENGINE" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
#echo "[duration_time: $SYSBENCH_MAX_TIME sec]" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
#echo "" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
#grep "SQL statistics:" $SYSBENCH_RESULT_FILE_NAME >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
#grep "SQL statistics:" $SYSBENCH_RESULT_FILE_NAME -A 9 | tail -n 8 | sed 's/^/> + /g' >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
#grep "Latency (ms):" $SYSBENCH_RESULT_FILE_NAME >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
#grep "Latency (ms):" $SYSBENCH_RESULT_FILE_NAME -A 6 | tail -n 5 | sed 's/^/> + /g' >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
|
|
echo "" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
echo "" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
echo "" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
echo "** **" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
echo "## $OLTP_CASE_NAME, $SYSBENCH_ENGINE, $SYSBENCH_THREAD_NUM threads" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
echo "" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
echo "[duration_time: $SYSBENCH_MAX_TIME sec]" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
echo "" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
grep "SQL statistics:" $SYSBENCH_RESULT_FILE_NAME >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
grep "SQL statistics:" $SYSBENCH_RESULT_FILE_NAME -A 9 | grep -v "SQL statistics:" | sed 's/^/> + /g' >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
echo "" >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
grep "Latency (ms):" $SYSBENCH_RESULT_FILE_NAME >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
grep "Latency (ms):" $SYSBENCH_RESULT_FILE_NAME -A 6 | grep -v "Latency" | sed 's/^/> + /g' >> $SYSBENCH_RESULT_SHOW_FILE_NAME
|
|
|
|
|