~percona-dev/percona-benchmark-result/galera-overhead

1 by Vadim Tkachenko
importing results
1
#!/bin/sh
2
set -u
3
set -x
4
set -e
5
6
#export LD_LIBRARY_PATH=/usr/local/mysql/lib/mysql/
7
export LD_LIBRARY_PATH=/usr/local/Percona-Server/lib/mysql/
8
MYSQLDIR=/usr/local/Percona-XtraDB-Cluster-5.5.15
9
#MYSQLDIR=/usr/local/mysql-5.6.3-m6-linux2.6-x86_64
10
11
ulimit -c unlimited
12
13
#DR="/mnt/fio320"
14
DR="/data/fio/d"
15
#IDR="/data/bench/fio/d"
16
IDR="/data/fio/d"
17
LR="/data/fio/d"
18
#LR="/data/bench/fio/d"
19
CONFIG="/etc/my.gal.55.cnf"
20
21
#SERVER="10.11.12.206"
22
SERVER="R815"
23
NINST=1
24
MAXW=600
25
WH=$(($MAXW/$NINST))
26
BP=$((120/$NINST))
27
BD=/data/bench/back/tpcc$WH
28
29
RT=3600
30
31
32
log2="$DR/"
33
34
# restore from backup
35
function restore {
36
37
for i in `seq 1 $NINST`
38
do
39
ssh $SERVER "mkdir -p $DR$i"
40
ssh $SERVER "rm -fr $DR$i/*"
41
42
ssh $SERVER "mkdir -p $LR$i"
43
ssh $SERVER "rm -fr $LR$i/*"
44
45
ssh $SERVER "mkdir -p $IDR$i"
46
ssh $SERVER "rm -fr $IDR$i/*"
47
48
ssh $SERVER "cp -r $BD/* $DR$i"
49
50
ssh $SERVER "cp -r $BD/ibdata1 $IDR$i"
51
ssh $SERVER "cp /tmp/ib_lru_dump $DR$i"
52
ssh $SERVER "sync; echo 3 > /proc/sys/vm/drop_caches"
53
54
ssh $SERVER "chown mysql.mysql -R $DR$i; chmod -R 755 $DR$i"
55
ssh $SERVER "chown mysql.mysql -R $LR$i; chmod -R 755 $LR$i"
56
done
57
58
}
59
60
function formatc {
61
62
set +e
63
ssh $SERVER "umount /data/fio"
64
ssh $SERVER "mdadm --stop /dev/md127"
65
ssh $SERVER "fio-detach /dev/fct0"
66
ssh $SERVER "fio-detach /dev/fct1"
67
ssh $SERVER "yes | fio-format -b 4096 /dev/fct0"
68
ssh $SERVER "yes | fio-format -b 4096 /dev/fct1"
69
ssh $SERVER "fio-attach /dev/fct0"
70
ssh $SERVER "fio-attach /dev/fct1"
71
ssh $SERVER "mdadm --create  --verbose /dev/md127 --level=0 --raid-devices=2 --chunk=128 /dev/fioa /dev/fiob"
72
ssh $SERVER "mkfs.xfs -s size=4096 /dev/md127"
73
ssh $SERVER "mount /dev/md127 /data/fio -o nobarrier"
74
set -e
75
76
}
77
78
79
function waitm {
80
81
while [ true ]
82
do
83
84
mysql -e "set global innodb_max_dirty_pages_pct=0" mysql
85
86
wt=`mysql -e "SHOW ENGINE INNODB STATUS\G" | grep "Modified db pages" | sort -u | awk '{print $4}'`
87
if [[ "$wt" -lt 100 ]] ;
88
then
89
mysql -e "set global innodb_max_dirty_pages_pct=90" mysql
90
break
91
fi
92
93
echo "mysql pages $wt"
94
sleep 10
95
done
96
97
}
98
99
function stratmysqld {
100
101
102
for i in `seq 1 $NINST`
103
do
104
PORT=$((3305+$i))
105
ssh $SERVER "PATH=$PATH:/usr/local/Percona-XtraDB-Cluster-5.5.15/bin numactl --cpunodebind=$(( ($i-1) * 8 / $NINST ))-$((($i-1)*8/$NINST+8/$NINST-1)) --interleave=all $MYSQLDIR/bin/mysqld --defaults-file=$CONFIG --datadir=$DR$i --innodb_thread_concurrency=0 --innodb-buffer-pool-size=${BP}G --innodb-log-file-size=$logsz --innodb_flush_log_at_trx_commit=$trxv --log-error=$DR$i/mysql.error.log --socket=/tmp/mysql$PORT --port=$PORT --innodb_data_home_dir=$IDR$i --innodb_log_group_home_dir=$LR$i --basedir=$MYSQLDIR &"
106
107
set +e
108
109
while true;
110
do
111
mysql -Bse "SELECT 1" mysql -h $SERVER -P $PORT
112
113
if [ "$?" -eq 0 ]
114
then
115
  break
116
fi
117
118
sleep 30
119
120
echo -n "."
121
done
122
set -e
123
124
done
125
126
}
127
128
129
# Determine run number for selecting an output directory
130
RUN_NUMBER=-1
131
132
if [ -f ".run_number" ]; then
133
  read RUN_NUMBER < .run_number
134
fi
135
136
if [ $RUN_NUMBER -eq -1 ]; then
137
        RUN_NUMBER=0
138
fi
139
140
OUTDIR=res$RUN_NUMBER
141
mkdir -p $OUTDIR
142
143
RUN_NUMBER=`expr $RUN_NUMBER + 1`
144
echo $RUN_NUMBER > .run_number
145
146
formatc
147
148
for trxv in 2
149
do
150
for logsz in 4G
151
do
152
#for par in 12 24 36 48 60 72 
153
#for par in 12 18 24 30 36  
154
#for par in 4 6 8 10 12  
155
#for par in $((36/$NINST)) $((48/$NINST))
156
for par in $((48/$NINST))
157
do
158
159
runid="par$par.log$logsz.trx$trxv"
160
161
restore
162
163
#stratmysqld
164
165
exit
166
167
sleep 30
168
169
ssh -f $SERVER "iostat -dmx 10 $(($RT/10+1)) " >> $OUTDIR/iostat.$runid.res 
170
ssh -f $SERVER "dstat -t -v --nocolor 10 $(($RT/10+1))" > $OUTDIR/dstat_plain.$runid.res 
171
172
cp $0 $OUTDIR
173
174
for i in `seq 1 $NINST`
175
do
176
PORT=$((3305+$i))
177
mysqladmin variables -h $SERVER -P$PORT >>  $OUTDIR/mysql_variables.$PORT.res
178
./innodb_stat.sh $RT $SERVER $PORT >> $OUTDIR/innodb.${runid}.$i.res &
179
./tpcc_start $SERVER:$PORT tpcc$WH root "" $WH $par 10 $RT | tee -a $OUTDIR/tpcc.${runid}.$i.out &
180
done
181
182
sleep $(($RT+30))
183
184
set +e
185
#ssh $SERVER "killall -s SIGKILL mysqld"
186
set -e
187
188
sleep 60
189
#ssh $SERVER "cp ${DR}1/ib_lru_dump /tmp"
190
191
192
193
done
194
195
done
196
done