Skip to content

Commit fe17667

Browse files
authored
Update mysql_oltp_test.sh
可读性,使用方便性改进
1 parent 4282798 commit fe17667

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

mysql_oltp_test.sh

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,26 @@
22
#by ljk 20161003
33

44
#通过sysbench测试mysql相关性能,并将关键数据存储于‘test.sysbenc_test’表中
5-
5+
6+
#----------自定义部分----------
67
#定义记录测试结果的mysql连接相关参数,本例我在测试机上记录测试结果
78
m_user='test'
89
m_passwd='test'
910
m_port='3307'
1011
m_host='127.0.0.1'
12+
#测试结果存储于哪个库
13+
m_db='test'
14+
#测试结果存储于哪个表
15+
m_table='sysbench_test'
1116

1217
#定义错误日志文件
1318
log=/tmp/mysql_oltp.log
1419
#定义测试线程
1520
threds_num='8 24 48 64 96 128 160 196 256'
16-
21+
#每种条件测试多少次,分析时取平均值
22+
times=3
23+
#----------自定义部分结束----------
24+
1725
#测试函数
1826
sb_test() {
1927

@@ -22,9 +30,9 @@ sb_test() {
2230
if [ "$3" == "read-only" ];then read_only='on';else read_only='off';fi #根据脚本参数确定是否read-only
2331

2432
#创建记录测试信息的表
25-
echo -e "\n---------------\n创建测测试结果表test.sysbench_test\n---------------"
33+
echo -e "\n---------------\n创建测测试结果表$m_db.$m_table\n---------------"
2634
mysql -u$m_user -p$m_passwd -P$m_port -h$m_host <<EOF
27-
CREATE TABLE IF NOT EXISTS test.sysbench_test (
35+
CREATE TABLE IF NOT EXISTS $m_db.$m_table (
2836
scenario varchar(30) NOT NULL DEFAULT '' COMMENT '测试场景',
2937
server_name varchar(15) NOT NULL COMMENT '被测DB name',
3038
test_type varchar(15) NOT NULL COMMENT 'read-only,read-write,insert等',
@@ -38,11 +46,14 @@ sb_test() {
3846
95_pct_time decimal(12,2) NOT NULL DEFAULT '0.00' COMMENT '单位毫秒'
3947
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
4048
EOF
41-
if [ $? -ne 0 ];then exit -1;fi
42-
43-
#开始测试,每种条件测3次,分析时取平均值
49+
if [ $? -ne 0 ];then
50+
echo "create table $m_db.$m_table failed"
51+
exit -1
52+
fi
53+
54+
#开始测试,每种条件测$times次,分析时取平均值
4455
echo -e "\n---------------\n场景:$2 模式:$3\n---------------"
45-
for i in {1..3};do
56+
for i in `seq $times`;do
4657

4758
for sb_threds in $threds_num;do #按照指定的sysbench线程测试
4859
printf " %-10s %s\n" $sb_threds线程 第$i次运行...
@@ -60,7 +71,7 @@ EOF
6071

6172
#本次测试结果写入数据库
6273
mysql -u$m_user -p$m_passwd -P$m_port -h$m_host <<EOF 2> $log
63-
INSERT INTO test.sysbench_test (scenario,server_name,test_type,sb_threads,server_load,request_read,request_write,request_total,request_per_second,total_time,95_pct_time)
74+
INSERT INTO $m_db.$m_table (scenario,server_name,test_type,sb_threads,server_load,request_read,request_write,request_total,request_per_second,total_time,95_pct_time)
6475
VALUES ('$2','$4','$3','$sb_threds','$load',$result);
6576
EOF
6677

@@ -90,7 +101,7 @@ sb_analyse() {
90101
convert(avg(request_per_second),decimal(12,2)) as request_per_second,
91102
convert(avg(total_time),decimal(12,2)) as total_time,
92103
convert(avg(95_pct_time),decimal(12,2)) as 95_pct_time
93-
FROM test.sysbench_test group by scenario,server_name,test_type,sb_threads
104+
FROM $m_db.$m_table group by scenario,server_name,test_type,sb_threads
94105
EOF
95106
}
96107

@@ -121,7 +132,7 @@ sb_chart() {
121132

122133
if [ $# -eq 0 ];then
123134
#对分析结果中所有场景进行画图
124-
for scenario in `mysql -u$m_user -p$m_passwd -h$m_host -P$m_port -s -e "select distinct(scenario) from test.sysbench_test" 2>/dev/null`;do
135+
for scenario in `mysql -u$m_user -p$m_passwd -h$m_host -P$m_port -s -e "select distinct(scenario) from $m_db.$m_table" 2>/dev/null`;do
125136
sb_analyse | awk -v scenario=$scenario '$1 == scenario {print}' > /tmp/"$scenario.dat"
126137
plot_cmd=${plot_cmd}"'/tmp/"$scenario.dat"' using $col_num:xtic(4) title '$scenario' with linespoints lw 2,"
127138
done

0 commit comments

Comments
 (0)