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
|