« DBMS/MySQL/DRBD » : différence entre les versions
| (4 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 246 : | Ligne 246 : | ||
'''Test effectués''': | '''Test effectués''': | ||
# sans binlog et lecture | # sans binlog et lecture écriture sur partition LVM | ||
# | # avec binlog et lecture écriture sur partition LVM | ||
# | # sans binlog et lecture écriture sur partition DRBD | ||
# avec binlog et lecture écriture | # avec binlog et lecture écriture sur partition DRBD | ||
{{Admon/note|Activation du binlog|'''Test avec binlog''' | {{Admon/note|Activation du binlog|'''Test avec binlog''' | ||
| Ligne 263 : | Ligne 263 : | ||
=== Préparation et lancement du bench === | === Préparation et lancement du bench === | ||
Création de la base de test | Création de la base de test | ||
# mysql -p -e "CREATE DATABASE sbtest" | # mysql -p -e "CREATE DATABASE sbtest" | ||
Script de test : | |||
# La base est purgée et repeuplée à chaque groupe de test ( ensemble de tests avec le paramètre '''thread''' variant ) | |||
# Le paramètre '''sync_binlog''' est affiché à chaque test | |||
# Le groupe de test ne comporte pas la partie Read Only | |||
<syntaxhighlight lang="bash"> | |||
#!/bin/bash | |||
OUPUT_PATH=$1 | |||
[ -z ${OUPUT_PATH} ] && OUPUT_PATH='/tmp/bench-didier' | |||
function bench() | |||
{ | |||
local testID1=$1 | |||
local testID2=$2 | |||
if [ -z ${testID1} ] | |||
then | |||
echo "No ID for test number 1" | |||
exit 2 | |||
fi | |||
if [ -z ${testID2} ] | |||
then | |||
echo "No ID for test number 2" | |||
exit 2 | |||
fi | |||
mysql -pb2p2012web -e 'SHOW VARIABLES LIKE "sync_binlog"' | |||
for thread in 1 8 16 24 32 | |||
do | |||
echo "Process test ${testID1} with ${thread} threads" | |||
/usr/local/bin/sysbench --test=oltp --db-driver=mysql --num-threads=${thread} \ | |||
--mysql-host=localhost --mysql-user=root --mysql-password=b2p2012web \ | |||
--mysql-db=sbtest --max-time=120 --max-requests=0 --oltp-table-size=1000000 \ | |||
--oltp-read-only=on run > ${OUPUT_PATH}/test${testID1}-thread${thread} | |||
echo "Process test ${testID2} with ${thread} threads" | |||
/usr/local/bin/sysbench --test=oltp --db-driver=mysql --num-threads=${thread} \ | |||
--mysql-host=localhost --mysql-user=root --mysql-password=b2p2012web \ | |||
--mysql-db=sbtest --max-time=120 --max-requests=0 --oltp-table-size=1000000 \ | |||
--oltp-read-only=off run > ${OUPUT_PATH}/test${testID2}-thread${thread} | |||
done | |||
} | |||
function initMySQL() | |||
{ | |||
local sync_binlog=$1 | |||
if [ -z ${sync_binlog} ] | |||
then | |||
echo "No binlog value" | |||
exit 2 | |||
fi | |||
mysql -pb2p2012web -e "SET GLOBAL sync_binlog=${sync_binlog}" | |||
sysbench --test=oltp --db-driver=mysql --mysql-user=root --mysql-password=b2p2012web \ | |||
--mysql-db=sbtest --mysql-host=localhost --mysql-table-engine=innodb cleanup | |||
sysbench --test=oltp --db-driver=mysql --mysql-user=root --mysql-password=b2p2012web \ | |||
--mysql-db=sbtest --mysql-host=localhost --mysql-table-engine=innodb prepare | |||
} | |||
mkdir -p ${OUPUT_PATH} | |||
rm -f ${OUPUT_PATH}/* | |||
initMySQL 0 | |||
bench 1 2 | |||
initMySQL 1 | |||
bench 3 4 | |||
</syntaxhighlight> | |||
=== Synthétisation des résultats === | === Synthétisation des résultats === | ||
==== Comparatif entre les différentes | ==== Comparatif entre les différentes plateformes, installations et configurations ==== | ||
===== Benchmark avec 1 | ===== Benchmark avec 1 thread(s) ===== | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ Benchmark - 1 thread | |+ Benchmark - 1 thread | ||
! colspan="2" | | |||
! test1 sur cloud | ! test1 sur cloud<br>sans binlog et sans drbd | ||
! test2 sur cloud | ! test2 sur cloud<br>avec binlog et sans drbd | ||
! | ! test3 sur cloud<br>sans binlog et avec drbd | ||
! | ! test4 sur cloud<br>avec binlog et avec drbd | ||
! test5 sur lame<br>sans binlog et sans drbd | |||
! test6 sur lame<br>avec binlog et sans drbd | |||
|- | |- | ||
| colspan="2" | '''OLTP test statistics''' | | colspan="2" | '''OLTP test statistics''' | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 307 : | Ligne 357 : | ||
| | | | ||
|- | |- | ||
| colspan="2" |Queries performed | |||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 472 : | Ligne 367 : | ||
| | | | ||
| read | | read | ||
| | | 762650 | ||
| | | 407148 | ||
| | | 698810 | ||
| | | 131250 | ||
| 880600 | |||
| 761390 | |||
|- | |- | ||
| | | | ||
| write | | write | ||
| | | 272375 | ||
| | | 145410 | ||
| | | 249575 | ||
| | | 46875 | ||
| 314500 | |||
| 271925 | |||
|- | |- | ||
| | | | ||
| other | | other | ||
| | | 108950 | ||
| | | 58164 | ||
| | | 99830 | ||
| | | 18750 | ||
| 125800 | |||
| 108770 | |||
|- | |- | ||
| | | | ||
| total | | total | ||
| | | 1143975 | ||
| | | 610722 | ||
| | | 1048215 | ||
| | | 196875 | ||
| 1320900 | |||
| 1142085 | |||
|- | |- | ||
| colspan="2" |transactions | | colspan="2" |transactions | ||
| | | 54475 ( 453.95/s ) | ||
| | | 29082 ( 242.34/s ) | ||
| | | 49915 ( 415.96/s ) | ||
| | | 9375 ( 78.12/s ) | ||
| 62900 ( 524.16/s ) | |||
| 54385 ( 453.21/s ) | |||
|- | |- | ||
| colspan="2" |deadlocks | | colspan="2" |deadlocks | ||
| 0 ( 0.00/s ) | |||
| 0 ( 0.00/s ) | |||
| 0 ( 0.00/s ) | | 0 ( 0.00/s ) | ||
| 0 ( 0.00/s ) | | 0 ( 0.00/s ) | ||
| Ligne 511 : | Ligne 418 : | ||
|- | |- | ||
| colspan="2" |R/w requests | | colspan="2" |R/w requests | ||
| | | 1035025 ( 8625.11/s ) | ||
| | | 552558 ( 4604.51/s ) | ||
| | | 948385 ( 7903.19/s ) | ||
| | | 178125 ( 1484.30/s ) | ||
| 1195100 ( 9959.06/s ) | |||
| 1033315 ( 8610.94/s ) | |||
|- | |- | ||
| colspan="2" |Other operations | | colspan="2" |Other operations | ||
| | | 108950 ( 907.91/s ) | ||
| | | 58164 ( 484.69/s ) | ||
| | | 99830 ( 831.92/s ) | ||
| | | 18750 ( 156.24/s ) | ||
| 125800 ( 1048.32/s ) | |||
| 108770 ( 906.42/s ) | |||
|- | |- | ||
| colspan="2" style="background-color:black;" | | | colspan="2" style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| Ligne 592 : | Ligne 441 : | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
|- | |- | ||
| colspan="2" |''' | | colspan="2" |'''Test execution summary''' | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 698 : | Ligne 450 : | ||
|- | |- | ||
| colspan="2" |total time | | colspan="2" |total time | ||
| 120. | | 120.0013s | ||
| 120. | | 120.0036s | ||
| 120. | | 120.0002s | ||
| 120. | | 120.0059s | ||
| 120.0013s | |||
| 120.0002s | |||
|- | |- | ||
| colspan="2" |total number of events | | colspan="2" |total number of events | ||
| | | 54475 | ||
| | | 29082 | ||
| | | 49915 | ||
| | | 9375 | ||
| 62900 | |||
| 54385 | |||
|- | |- | ||
| colspan="2" |total time taken by event execution | | colspan="2" |total time taken by event execution | ||
| | | 119.6978 | ||
| | | 119.7684 | ||
| | | 119.7094 | ||
| | | 119.9264 | ||
| 119.6023 | |||
| 119.5980 | |||
|- | |- | ||
| colspan="2" |per-request statistics | | colspan="2" |per-request statistics | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 886 : | Ligne 483 : | ||
| | | | ||
| min | | min | ||
| | | 1.88ms | ||
| | | 3.12ms | ||
| | | 1.88ms | ||
| | | 4.93ms | ||
| 1.26ms | |||
| 1.25ms | |||
|- | |- | ||
| | | | ||
| avg | | avg | ||
| | | 2.20ms | ||
| | | 4.12ms | ||
| | | 2.40ms | ||
| | | 12.79ms | ||
| 1.90ms | |||
| 2.20ms | |||
|- | |- | ||
| | | | ||
| max | | max | ||
| | | 40.45ms | ||
| | | 53.68ms | ||
| | | 551.58ms | ||
| | | 87.78ms | ||
| 22.10ms | |||
| 24.83ms | |||
|- | |- | ||
| | | | ||
| Approx. 95% | | Approx. 95% | ||
| | | 2.86ms | ||
| | | 4.50ms | ||
| | | 2.93ms | ||
| | | 14.04ms | ||
| 2.50ms | |||
| 2.52ms | |||
|- | |- | ||
| colspan="2" style="background-color:black;" | | | colspan="2" style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| Ligne 1 017 : | Ligne 525 : | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
|- | |- | ||
| colspan="2" |''' | | colspan="2" |'''Threads fairness''' | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 1 088 : | Ligne 534 : | ||
|- | |- | ||
| colspan="2" |events (avg/stddev) | | colspan="2" |events (avg/stddev) | ||
| | | 54475.0000/0.00 | ||
| | | 29082.0000/0.00 | ||
| | | 49915.0000/0.00 | ||
| | | 9375.0000/0.00 | ||
| 62900.0000/0.00 | |||
| 54385.0000/0.00 | |||
|- | |- | ||
| colspan="2" |execution time (avg/stddev) | | colspan="2" |execution time (avg/stddev) | ||
| 119. | | 119.6978/0.00 | ||
| 119. | | 119.7684/0.00 | ||
| 119. | | 119.7094/0.00 | ||
| 119. | | 119.9264/0.00 | ||
| 119.6023/0.00 | |||
| 119.5980/0.00 | |||
|} | |} | ||
===== Benchmark avec 8 thread(s) ===== | |||
===== Benchmark avec | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ Benchmark - | |+ Benchmark - 8 threads | ||
! colspan="2" | | ! colspan="2" | | ||
! | ! test1 sur cloud<br>sans binlog et sans drbd | ||
! test4 sur | ! test2 sur cloud<br>avec binlog et sans drbd | ||
! | ! test3 sur cloud<br>sans binlog et avec drbd | ||
! test4 sur cloud<br>avec binlog et avec drbd | |||
! test5 sur lame<br>sans binlog et sans drbd | |||
! test6 sur lame<br>avec binlog et sans drbd | |||
|- | |- | ||
| colspan="2" | '''OLTP test statistics''' | | colspan="2" | '''OLTP test statistics''' | ||
| Ligne 1 115 : | Ligne 566 : | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| colspan="2" |Queries performed | |||
| colspan="2" | | |||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 1 261 : | Ligne 580 : | ||
| | | | ||
| read | | read | ||
| | | 4972436 | ||
| | | 1355928 | ||
| | | 4596060 | ||
| 173600 | |||
| 5327014 | |||
| 5352634 | |||
|- | |- | ||
| | | | ||
| write | | write | ||
| | | 1775870 | ||
| | | 484260 | ||
| | | 1641450 | ||
| 62000 | |||
| 1902505 | |||
| 1911655 | |||
|- | |- | ||
| | | | ||
| other | | other | ||
| | | 710341 | ||
| | | 193704 | ||
| | | 656579 | ||
| 24799 | |||
| 760997 | |||
| 764653 | |||
|- | |- | ||
| | | | ||
| total | | total | ||
| | | 7458647 | ||
| | | 2033892 | ||
| | | 6894089 | ||
| 260399 | |||
| 7990516 | |||
| 8028942 | |||
|- | |- | ||
| colspan="2" |transactions | | colspan="2" |transactions | ||
| | | 355167 ( 2959.67/s ) | ||
| | | 96852 ( 807.05/s ) | ||
| | | 328289 ( 2735.68/s ) | ||
| 12399 ( 103.27/s ) | |||
| 380496 ( 3170.74/s ) | |||
| 382322 ( 3185.95/s ) | |||
|- | |- | ||
| colspan="2" |deadlocks | | colspan="2" |deadlocks | ||
| 7 ( 0.06/s ) | |||
| 0 ( 0.00/s ) | | 0 ( 0.00/s ) | ||
| 0 ( 0. | | 1 ( 0.01/s ) | ||
| 0 ( 0. | | 1 ( 0.01/s ) | ||
| 5 ( 0.04/s ) | |||
| 9 ( 0.07/s ) | |||
|- | |- | ||
| colspan="2" |R/w requests | | colspan="2" |R/w requests | ||
| | | 6748306 ( 56234.79/s ) | ||
| | | 1840188 ( 15333.86/s ) | ||
| | | 6237510 ( 51978.08/s ) | ||
| 235600 ( 1962.19/s ) | |||
| 7229519 ( 60244.79/s ) | |||
| 7264289 ( 60534.56/s ) | |||
|- | |- | ||
| colspan="2" |Other operations | | colspan="2" |Other operations | ||
| | | 710341 ( 5919.39/s ) | ||
| | | 193704 ( 1614.09/s ) | ||
| | | 656579 ( 5471.37/s ) | ||
| 24799 ( 206.54/s ) | |||
| 760997 ( 6341.52/s ) | |||
| 764653 ( 6371.98/s ) | |||
|- | |- | ||
| colspan="2" style="background-color:black;" | | | colspan="2" style="background-color:black;" | | ||
| Ligne 1 307 : | Ligne 650 : | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
|- | |- | ||
| colspan="2" |''' | | colspan="2" |'''Test execution summary''' | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 1 452 : | Ligne 663 : | ||
|- | |- | ||
| colspan="2" |total time | | colspan="2" |total time | ||
| 120. | | 120.0023s | ||
| 120. | | 120.0081s | ||
| 120. | | 120.0027s | ||
| 120.0696s | |||
| 120.0024s | |||
| 120.0023s | |||
|- | |- | ||
| colspan="2" |total number of events | | colspan="2" |total number of events | ||
| | | 355167 | ||
| | | 96852 | ||
| | | 328289 | ||
| 12399 | |||
| 380496 | |||
| 382322 | |||
|- | |- | ||
| colspan="2" |total time taken by event execution | | colspan="2" |total time taken by event execution | ||
| | | 957.7460 | ||
| | | 959.1517 | ||
| | | 957.8218 | ||
| 960.1471 | |||
| 956.6375 | |||
| 956.6307 | |||
|- | |- | ||
| colspan="2" |per-request statistics | | colspan="2" |per-request statistics | ||
| Ligne 1 470 : | Ligne 690 : | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 1 611 : | Ligne 696 : | ||
| | | | ||
| min | | min | ||
| | | 1.88ms | ||
| | | 3.25ms | ||
| | | 1.82ms | ||
| 8.93ms | |||
| 1.50ms | |||
| 1.28ms | |||
|- | |- | ||
| | | | ||
| avg | | avg | ||
| | | 2.70ms | ||
| | | 9.90ms | ||
| | | 2.92ms | ||
| 77.44ms | |||
| 2.51ms | |||
| 2.50ms | |||
|- | |- | ||
| | | | ||
| max | | max | ||
| | | 175.12ms | ||
| | | 134.68ms | ||
| | | 453.46ms | ||
| 192.95ms | |||
| 29.44ms | |||
| 23.86ms | |||
|- | |- | ||
| | | | ||
| Approx. 95% | | Approx. 95% | ||
| | | 3.37ms | ||
| | | 13.60ms | ||
| | | 3.68ms | ||
| 88.67ms | |||
| 2.99ms | |||
| 2.95ms | |||
|- | |- | ||
| colspan="2" style="background-color:black;" | | | colspan="2" style="background-color:black;" | | ||
| Ligne 1 637 : | Ligne 734 : | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
|- | |- | ||
| colspan="2" |''' | | colspan="2" |'''Threads fairness''' | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 1 782 : | Ligne 747 : | ||
|- | |- | ||
| colspan="2" |events (avg/stddev) | | colspan="2" |events (avg/stddev) | ||
| | | 44395.8750/689.85 | ||
| | | 12106.5000/30.22 | ||
| | | 41036.1250/434.35 | ||
| 1549.8750/1.45 | |||
| 47562.0000/442.35 | |||
| 47790.2500/597.90 | |||
|- | |- | ||
| colspan="2" |execution time (avg/stddev) | | colspan="2" |execution time (avg/stddev) | ||
| 119. | | 119.7183/0.00 | ||
| 119. | | 119.8940/0.00 | ||
| 119. | | 119.7277/0.00 | ||
| 120.0184/0.02 | |||
| 119.5797/0.00 | |||
| 119.5788/0.00 | |||
|} | |} | ||
===== Benchmark avec 16 thread(s) ===== | |||
===== Benchmark avec | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ Benchmark - | |+ Benchmark - 16 threads | ||
! colspan="2" | | ! colspan="2" | | ||
! | ! test1 sur cloud<br>sans binlog et sans drbd | ||
! test4 sur | ! test2 sur cloud<br>avec binlog et sans drbd | ||
! | ! test3 sur cloud<br>sans binlog et avec drbd | ||
! test4 sur cloud<br>avec binlog et avec drbd | |||
! test5 sur lame<br>sans binlog et sans drbd | |||
! test6 sur lame<br>avec binlog et sans drbd | |||
|- | |- | ||
| colspan="2" | '''OLTP test statistics''' | | colspan="2" | '''OLTP test statistics''' | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| colspan="2" |Queries performed | |||
| colspan="2" | | |||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 1 953 : | Ligne 793 : | ||
| | | | ||
| read | | read | ||
| | | 8554546 | ||
| | | 1326010 | ||
| | | 7279678 | ||
| 172662 | |||
| 9637152 | |||
| 9734634 | |||
|- | |- | ||
| | | | ||
| write | | write | ||
| | | 3055195 | ||
| | | 473575 | ||
| | | 2599885 | ||
| 61665 | |||
| 3441840 | |||
| 3476655 | |||
|- | |- | ||
| | | | ||
| other | | other | ||
| | | 1222074 | ||
| | | 189430 | ||
| | | 1039951 | ||
| 24666 | |||
| 1376730 | |||
| 1390655 | |||
|- | |- | ||
| | | | ||
| total | | total | ||
| | | 12831815 | ||
| | | 1989015 | ||
| | | 10919514 | ||
| 258993 | |||
| 14455722 | |||
| 14601944 | |||
|- | |- | ||
| colspan="2" |transactions | | colspan="2" |transactions | ||
| | | 611035 ( 5091.82/s ) | ||
| | | 94715 ( 789.18/s ) | ||
| | | 519974 ( 4333.02/s ) | ||
| 12333 ( 102.65/s ) | |||
| 688362 ( 5736.24/s ) | |||
| 695324 ( 5794.25/s ) | |||
|- | |- | ||
| colspan="2" |deadlocks | | colspan="2" |deadlocks | ||
| 4 ( 0.03/s ) | |||
| 0 ( 0.00/s ) | | 0 ( 0.00/s ) | ||
| 3 ( 0.02/s ) | |||
| 0 ( 0.00/s ) | | 0 ( 0.00/s ) | ||
| 0 ( 0. | | 6 ( 0.05/s ) | ||
| 7 ( 0.06/s ) | |||
|- | |- | ||
| colspan="2" |R/w requests | | colspan="2" |R/w requests | ||
| | | 11609741 ( 96745.25/s ) | ||
| | | 1799585 ( 14994.50/s ) | ||
| | | 9879563 ( 82327.80/s ) | ||
| 234327 ( 1950.34/s ) | |||
| 13078992 ( 108989.51/s ) | |||
| 13211289 ( 110091.83/s ) | |||
|- | |- | ||
| colspan="2" |Other operations | | colspan="2" |Other operations | ||
| | | 1222074 ( 10183.68/s ) | ||
| | | 189430 ( 1578.37/s ) | ||
| | | 1039951 ( 8666.06/s ) | ||
| 24666 ( 205.30/s ) | |||
| 1376730 ( 11472.53/s ) | |||
| 1390655 ( 11588.56/s ) | |||
|- | |- | ||
| colspan="2" style="background-color:black;" | | | colspan="2" style="background-color:black;" | | ||
| Ligne 1 999 : | Ligne 863 : | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
|- | |- | ||
| colspan="2" |''' | | colspan="2" |'''Test execution summary''' | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 2 144 : | Ligne 876 : | ||
|- | |- | ||
| colspan="2" |total time | | colspan="2" |total time | ||
| 120.0032s | | 120.0032s | ||
| 120.0163s | |||
| 120.0028s | |||
| 120.1469s | |||
| 120.0023s | |||
| 120.0024s | |||
|- | |- | ||
| colspan="2" |total number of events | | colspan="2" |total number of events | ||
| | | 611035 | ||
| | | 94715 | ||
| | | 519974 | ||
| 12333 | |||
| 688362 | |||
| 695324 | |||
|- | |- | ||
| colspan="2" |total time taken by event execution | | colspan="2" |total time taken by event execution | ||
| | | 1915.7032 | ||
| | | 1919.2213 | ||
| 1914. | | 1916.1328 | ||
| 1921.0758 | |||
| 1914.9206 | |||
| 1914.8667 | |||
|- | |- | ||
| colspan="2" |per-request statistics | | colspan="2" |per-request statistics | ||
| Ligne 2 162 : | Ligne 903 : | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 2 303 : | Ligne 909 : | ||
| | | | ||
| min | | min | ||
| 2. | | 2.02ms | ||
| | | 3.63ms | ||
| 2.03ms | | 2.03ms | ||
| 9.80ms | |||
| 1.69ms | |||
| 1.70ms | |||
|- | |- | ||
| | | | ||
| avg | | avg | ||
| | | 3.14ms | ||
| | | 20.26ms | ||
| | | 3.69ms | ||
| 155.77ms | |||
| 2.78ms | |||
| 2.75ms | |||
|- | |- | ||
| | | | ||
| max | | max | ||
| | | 388.10ms | ||
| | | 268.02ms | ||
| | | 2806.90ms | ||
| 305.93ms | |||
| 98.29ms | |||
| 154.89ms | |||
|- | |- | ||
| | | | ||
| Approx. 95% | | Approx. 95% | ||
| | | 4.11ms | ||
| | | 31.00ms | ||
| | | 5.15ms | ||
| 178.31ms | |||
| 3.30ms | |||
| 3.08ms | |||
|- | |- | ||
| colspan="2" style="background-color:black;" | | | colspan="2" style="background-color:black;" | | ||
| Ligne 2 329 : | Ligne 947 : | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
|- | |- | ||
| colspan="2" |''' | | colspan="2" |'''Threads fairness''' | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 2 474 : | Ligne 960 : | ||
|- | |- | ||
| colspan="2" |events (avg/stddev) | | colspan="2" |events (avg/stddev) | ||
| | | 38189.6875/430.66 | ||
| | | 5919.6875/15.96 | ||
| | | 32498.3750/420.45 | ||
| 770.8125/2.27 | |||
| 43022.6250/454.00 | |||
| 43457.7500/469.96 | |||
|- | |- | ||
| colspan="2" |execution time (avg/stddev) | | colspan="2" |execution time (avg/stddev) | ||
| 119. | | 119.7315/0.00 | ||
| 119. | | 119.9513/0.01 | ||
| 119. | | 119.7583/0.00 | ||
| 120.0672/0.04 | |||
| 119.6825/0.00 | |||
| 119.6792/0.00 | |||
|} | |} | ||
==== | ===== Benchmark avec 24 thread(s) ===== | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ Benchmark - | |+ Benchmark - 24 threads | ||
! colspan="2" | | ! colspan="2" | | ||
! | ! test1 sur cloud<br>sans binlog et sans drbd | ||
! test4 sur | ! test2 sur cloud<br>avec binlog et sans drbd | ||
! | ! test3 sur cloud<br>sans binlog et avec drbd | ||
! | ! test4 sur cloud<br>avec binlog et avec drbd | ||
! test5 sur lame<br>sans binlog et sans drbd | |||
! test6 sur lame<br>avec binlog et sans drbd | |||
|- | |- | ||
| colspan="2" | '''OLTP test statistics''' | | colspan="2" | '''OLTP test statistics''' | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| colspan="2" |Queries performed | |||
| colspan="2" | | |||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 2 673 : | Ligne 1 006 : | ||
| | | | ||
| read | | read | ||
| | | 8007132 | ||
| | | 1304828 | ||
| | | 7263214 | ||
| | | 175784 | ||
| 8929564 | |||
| 8972768 | |||
|- | |- | ||
| | | | ||
| write | | write | ||
| | | 2859690 | ||
| | | 466010 | ||
| | | 2594005 | ||
| | | 62780 | ||
| 3189130 | |||
| 3204560 | |||
|- | |- | ||
| | | | ||
| other | | other | ||
| | | 1143875 | ||
| | | 186403 | ||
| | | 1037602 | ||
| | | 25112 | ||
| 1275651 | |||
| 1281823 | |||
|- | |- | ||
| | | | ||
| total | | total | ||
| | | 12010697 | ||
| | | 1957241 | ||
| | | 10894821 | ||
| | | 263676 | ||
| 13394345 | |||
| 13459151 | |||
|- | |- | ||
| colspan="2" |transactions | | colspan="2" |transactions | ||
| | | 571937 ( 4765.96/s ) | ||
| | | 93201 ( 776.50/s ) | ||
| | | 518801 ( 4322.92/s ) | ||
| | | 12556 ( 104.43/s ) | ||
| 637825 ( 5315.06/s ) | |||
| 640911 ( 5340.74/s ) | |||
|- | |- | ||
| colspan="2" |deadlocks | | colspan="2" |deadlocks | ||
| 1 ( 0.01/s ) | |||
| 1 ( 0.01/s ) | |||
| 0 ( 0.00/s ) | | 0 ( 0.00/s ) | ||
| 0 ( 0.00/s ) | | 0 ( 0.00/s ) | ||
| | | 1 ( 0.01/s ) | ||
| | | 1 ( 0.01/s ) | ||
|- | |- | ||
| colspan="2" |R/w requests | | colspan="2" |R/w requests | ||
| | | 10866822 ( 90553.46/s ) | ||
| | | 1770838 ( 14753.61/s ) | ||
| | | 9857219 ( 82135.51/s ) | ||
| | | 238564 ( 1984.17/s ) | ||
| 12118694 ( 100986.23/s ) | |||
| 12177328 ( 101474.18/s ) | |||
|- | |- | ||
| colspan="2" |Other operations | | colspan="2" |Other operations | ||
| | | 1143875 ( 9531.93/s ) | ||
| | | 186403 ( 1553.00/s ) | ||
| | | 1037602 ( 8645.84/s ) | ||
| | | 25112 ( 208.86/s ) | ||
| 1275651 ( 10630.12/s ) | |||
| 1281823 ( 10681.48/s ) | |||
|- | |- | ||
| colspan="2" style="background-color:black;" | | | colspan="2" style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| Ligne 2 793 : | Ligne 1 080 : | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
|- | |- | ||
| colspan="2" |''' | | colspan="2" |'''Test execution summary''' | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 2 899 : | Ligne 1 089 : | ||
|- | |- | ||
| colspan="2" |total time | | colspan="2" |total time | ||
| 120. | | 120.0045s | ||
| 120. | | 120.0274s | ||
| 120. | | 120.0117s | ||
| 120. | | 120.2339s | ||
| 120.0034s | |||
| 120.0042s | |||
|- | |- | ||
| colspan="2" |total number of events | | colspan="2" |total number of events | ||
| | | 571937 | ||
| | | 93201 | ||
| | | 518801 | ||
| | | 12556 | ||
| 637825 | |||
| 640911 | |||
|- | |- | ||
| colspan="2" |total time taken by event execution | | colspan="2" |total time taken by event execution | ||
| | | 2875.9517 | ||
| | | 2879.3811 | ||
| | | 2876.2007 | ||
| | | 2882.6813 | ||
| 2875.2948 | |||
| 2875.2542 | |||
|- | |- | ||
| colspan="2" |per-request statistics | | colspan="2" |per-request statistics | ||
| | |||
| | |||
| | | | ||
| | | | ||
| Ligne 2 924 : | Ligne 1 122 : | ||
| | | | ||
| min | | min | ||
| 2. | | 2.08ms | ||
| 2. | | 3.66ms | ||
| | | 2.08ms | ||
| | | 10.96ms | ||
| 1.67ms | |||
| 1.63ms | |||
|- | |- | ||
| | | | ||
| avg | | avg | ||
| | | 5.03ms | ||
| | | 30.89ms | ||
| | | 5.54ms | ||
| | | 229.59ms | ||
| 4.51ms | |||
| 4.49ms | |||
|- | |- | ||
| | | | ||
| max | | max | ||
| | | 528.54ms | ||
| | | 383.68ms | ||
| | | 892.97ms | ||
| | | 460.99ms | ||
| 54.49ms | |||
| 48.65ms | |||
|- | |- | ||
| | | | ||
| Approx. 95% | | Approx. 95% | ||
| | | 9.45ms | ||
| | | 52.51ms | ||
| 9. | | 10.02ms | ||
| 9. | | 244.02ms | ||
| 9.30ms | |||
| 9.04ms | |||
|- | |- | ||
| colspan="2" style="background-color:black;" | | | colspan="2" style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| Ligne 3 055 : | Ligne 1 164 : | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
|- | |- | ||
| colspan="2" |''' | | colspan="2" |'''Threads fairness''' | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 3 126 : | Ligne 1 173 : | ||
|- | |- | ||
| colspan="2" |events (avg/stddev) | | colspan="2" |events (avg/stddev) | ||
| | | 23830.7083/307.02 | ||
| | | 3883.3750/20.98 | ||
| | | 21616.7083/257.97 | ||
| | | 523.1667/1.55 | ||
| 26576.0417/397.44 | |||
| 26704.6250/421.47 | |||
|- | |- | ||
| colspan="2" |execution time (avg/stddev) | | colspan="2" |execution time (avg/stddev) | ||
| 119. | | 119.8313/0.00 | ||
| 119. | | 119.9742/0.01 | ||
| 119. | | 119.8417/0.00 | ||
| 119. | | 120.1117/0.07 | ||
| 119.8040/0.00 | |||
| 119.8023/0.00 | |||
|} | |} | ||
===== | ===== Benchmark avec 32 thread(s) ===== | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ Benchmark - 32 threads | |+ Benchmark - 32 threads | ||
! colspan="2" | | ! colspan="2" | | ||
! | ! test1 sur cloud<br>sans binlog et sans drbd | ||
! test4 sur | ! test2 sur cloud<br>avec binlog et sans drbd | ||
! | ! test3 sur cloud<br>sans binlog et avec drbd | ||
! | ! test4 sur cloud<br>avec binlog et avec drbd | ||
! test5 sur lame<br>sans binlog et sans drbd | |||
! test6 sur lame<br>avec binlog et sans drbd | |||
|- | |- | ||
| colspan="2" | '''OLTP test statistics''' | | colspan="2" | '''OLTP test statistics''' | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 3 160 : | Ligne 1 209 : | ||
| | | | ||
|- | |- | ||
| colspan="2" |Queries performed | |||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 3 324 : | Ligne 1 219 : | ||
| | | | ||
| read | | read | ||
| | | 7656782 | ||
| | | 1287524 | ||
| | | 6343358 | ||
| 176120 | |||
| 8397284 | |||
| 8428868 | |||
|- | |- | ||
| | | | ||
| write | | write | ||
| | | 2734565 | ||
| | | 459830 | ||
| | | 2265485 | ||
| 62900 | |||
| 2999030 | |||
| 3010310 | |||
|- | |- | ||
| | | | ||
| other | | other | ||
| | | 1093826 | ||
| | | 183932 | ||
| | | 906193 | ||
| 25159 | |||
| 1199611 | |||
| 1204123 | |||
|- | |- | ||
| | | | ||
| total | | total | ||
| | | 11485173 | ||
| | | 1931286 | ||
| | | 9515036 | ||
| 264179 | |||
| 12595925 | |||
| 12643301 | |||
|- | |- | ||
| colspan="2" |transactions | | colspan="2" |transactions | ||
| | | 546913 ( 4557.40/s ) | ||
| | | 91966 ( 766.17/s ) | ||
| | | 453096 ( 3775.70/s ) | ||
| 12579 ( 104.57/s ) | |||
| 599805 ( 4997.94/s ) | |||
| 602061 ( 5016.92/s ) | |||
|- | |- | ||
| colspan="2" |deadlocks | | colspan="2" |deadlocks | ||
| 0 ( 0.00/s ) | | 0 ( 0.00/s ) | ||
| 0 ( 0.00/s ) | | 0 ( 0.00/s ) | ||
| 0 ( 0. | | 1 ( 0.01/s ) | ||
| 1 ( 0.01/s ) | |||
| 1 ( 0.01/s ) | |||
| 1 ( 0.01/s ) | |||
|- | |- | ||
| colspan="2" |R/w requests | | colspan="2" |R/w requests | ||
| | | 10391347 ( 86590.54/s ) | ||
| | | 1747354 ( 14557.14/s ) | ||
| | | 8608843 ( 71738.40/s ) | ||
| 239020 ( 1986.98/s ) | |||
| 11396314 ( 94961.01/s ) | |||
| 11439178 ( 95321.57/s ) | |||
|- | |- | ||
| colspan="2" |Other operations | | colspan="2" |Other operations | ||
| | | 1093826 ( 9114.79/s ) | ||
| | | 183932 ( 1532.33/s ) | ||
| | | 906193 ( 7551.40/s ) | ||
| 25159 ( 209.15/s ) | |||
| 1199611 ( 9995.89/s ) | |||
| 1204123 ( 10033.84/s ) | |||
|- | |- | ||
| colspan="2" style="background-color:black;" | | | colspan="2" style="background-color:black;" | | ||
| Ligne 3 370 : | Ligne 1 289 : | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
|- | |- | ||
| colspan="2" |''' | | colspan="2" |'''Test execution summary''' | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 3 515 : | Ligne 1 302 : | ||
|- | |- | ||
| colspan="2" |total time | | colspan="2" |total time | ||
| 120. | | 120.0056s | ||
| 120. | | 120.0342s | ||
| 120. | | 120.0033s | ||
| 120.2933s | |||
| 120.0105s | |||
| 120.0062s | |||
|- | |- | ||
| colspan="2" |total number of events | | colspan="2" |total number of events | ||
| | | 546913 | ||
| | | 91966 | ||
| | | 453096 | ||
| 12579 | |||
| 599805 | |||
| 602061 | |||
|- | |- | ||
| colspan="2" |total time taken by event execution | | colspan="2" |total time taken by event execution | ||
| | | 3836.1404 | ||
| | | 3839.5396 | ||
| | | 3836.5610 | ||
| 3844.4712 | |||
| 3835.4883 | |||
| 3835.3976 | |||
|- | |- | ||
| colspan="2" |per-request statistics | | colspan="2" |per-request statistics | ||
| Ligne 3 533 : | Ligne 1 329 : | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 3 674 : | Ligne 1 335 : | ||
| | | | ||
| min | | min | ||
| | | 2.10ms | ||
| | | 3.35ms | ||
| | | 2.05ms | ||
| 9.20ms | |||
| 1.49ms | |||
| 1.78ms | |||
|- | |- | ||
| | | | ||
| avg | | avg | ||
| | | 7.01ms | ||
| | | 41.75ms | ||
| 8. | | 8.47ms | ||
| 305.63ms | |||
| 6.39ms | |||
| 6.37ms | |||
|- | |- | ||
| | | | ||
| max | | max | ||
| | | 518.17ms | ||
| | | 524.17ms | ||
| | | 8542.90ms | ||
| 708.98ms | |||
| 677.23ms | |||
| 887.70ms | |||
|- | |- | ||
| | | | ||
| Approx. 95% | | Approx. 95% | ||
| | | 15.84ms | ||
| | | 73.80ms | ||
| | | 18.15ms | ||
| 321.00ms | |||
| 14.76ms | |||
| 14.56ms | |||
|- | |- | ||
| colspan="2" style="background-color:black;" | | | colspan="2" style="background-color:black;" | | ||
| Ligne 3 700 : | Ligne 1 373 : | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
| style="background-color:black;" | | | style="background-color:black;" | | ||
|- | |- | ||
| colspan="2" |''' | | colspan="2" |'''Threads fairness''' | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Ligne 3 845 : | Ligne 1 386 : | ||
|- | |- | ||
| colspan="2" |events (avg/stddev) | | colspan="2" |events (avg/stddev) | ||
| | | 17091.0312/158.44 | ||
| | | 2873.9375/14.92 | ||
| | | 14159.2500/139.31 | ||
| 393.0938/0.88 | |||
| 18743.9062/144.63 | |||
| 18814.4062/190.17 | |||
|- | |- | ||
| colspan="2" |execution time (avg/stddev) | | colspan="2" |execution time (avg/stddev) | ||
| 120. | | 119.8794/0.00 | ||
| | | 119.9856/0.01 | ||
| 119. | | 119.8925/0.00 | ||
| 120.1397/0.09 | |||
| 119.8590/0.00 | |||
| 119.8562/0.00 | |||
|} | |} | ||
===== | === Graphiques comparatifs === | ||
[[Fichier:MySQL-DRBD-Chart-Transactions.svg]] | |||
[[Fichier:MySQL-DRBD-Chart-RwRequests.svg]] | |||
[[Fichier:MySQL-DRBD-Chart-OtherOp.svg]] | |||
Dernière version du 15 janvier 2013 à 17:37
Introduction
DRBD est une technologie de Raid1 sur IP. C'est à dire que tous ce qui sera écrit sur la partition DRBD d'un noeud, le sera automatiquement sur sa partition jumelle sur l'autre noeud.
DRBD fonctionnant au niveau bloc, il faut un disque ou une partition dédiée à cela. Celle-ci n’a pas besoin (et ne doit pas) d’être formaté.
Depuis CentOS 6, les paquets DRBD ne sont plus dans les dépots de base, il faut donc ajouter ceux de atRPMS. Pour ce faire, ajouter le fichier <path>/etc/yum.repos.d/atrpms.repo</path> contenant ceci :
[atrpms] name=CentOS $releasever - $basearch - ATrpms baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable gpgkey=http://atrpms.net/RPM-GPG-KEY.atrpms gpgcheck=1
Prérequis:
- Ouverture du firewall pour le port tcp:7789 pour le LAN. On part du principe que toute connexion déjà établie est autorisée.
-A RH-Firewall-1-INPUT -m state --state NEW -s 192.168.0.0/24 -d 192.168.0.0/24 -m tcp -p tcp --dport 7789 -j ACCEPT
- SELinux est désactivé
- Ajout des hôtes dans le fichier <path>/etc/hosts</path>
192.168.0.71 sql1-didier sql1-didier.b2pweb.com
192.168.0.72 sql2-didier sql2-didier.b2pweb.com
Schéma
Installation
Installation de drbd
On installe drbd ( utilitaires + module noyau ), puis on créer le volume logique qui accueillera notre partition drbd.
# yum install drbd drbd-kmdl-2.6.32-279.19.1.el6.x86_64
Fichier <path>/etc/drbd.conf</path>
#
# /etc/drbd.conf
#
include "drbd.d/global_common.conf";
include "drbd.d/*.res";
Fichier <path>/etc/drbd.d/global_common.conf</path>
global {
usage-count yes;
# minor-count dialog-refresh disable-ip-verification
}
common {
protocol C;
handlers {
pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
# fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
# split-brain "/usr/lib/drbd/notify-split-brain.sh root";
# out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
# before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k";
# after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh;
}
startup {
# wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb
}
disk {
# on-io-error fencing use-bmbv no-disk-barrier no-disk-flushes
# no-disk-drain no-md-flushes max-bio-bvecs
}
net {
# sndbuf-size rcvbuf-size timeout connect-int ping-int ping-timeout max-buffers
# max-epoch-size ko-count allow-two-primaries cram-hmac-alg shared-secret
# after-sb-0pri after-sb-1pri after-sb-2pri data-integrity-alg no-tcp-cork
}
syncer {
# rate after al-extents use-rle cpu-mask verify-alg csums-alg
}
}
Fichier <path>/etc/drbd.d/mysql.res</path>
resource mysql {
protocol C;
net {
cram-hmac-alg sha1;
shared-secret "FuCk_ThE;@@System!";
after-sb-0pri discard-older-primary;
after-sb-1pri call-pri-lost-after-sb;
after-sb-2pri call-pri-lost-after-sb;
}
disk {
# because partition is on a lvm system
no-disk-barrier;
}
startup {
wfc-timeout 120;
degr-wfc-timeout 120;
}
syncer {
rate 100M;
verify-alg "crc32c"; # Algorythm to tun "drbdadm verify"
}
on sql1-didier.b2pweb.com {
device /dev/drbd0;
disk /dev/vg0/lvmysql;
address 192.168.0.71:7789;
meta-disk internal;
}
on sql2-didier.b2pweb.com {
device /dev/drbd0;
disk /dev/vg0/lvmysql;
address 192.168.0.72:7789;
meta-disk internal;
}
}
On copie la configuration sur l'autre noeud
# scp /etc/drbd.conf sql2:/etc/ # scp /etc/drbd.d/* sql2:/etc/drbd.d/
Configuration de DRBD
Sur les deux noeuds, on créer la partition qui accueillera DRBD, ainsi que le point de montage ( sql1 + sql2 )
# lvcreate -n lvmysql -L 100G vg0
On exécute la commande suivante sur les deux noeuds ( sql1 + sql2 )
# drbdadm create-md mysql md_offset 107374178304 al_offset 107374145536 bm_offset 107370868736 Found some data ==> This might destroy existing data! <== Do you want to proceed? [need to type 'yes' to confirm] yes Writing meta data... initializing activity log NOT initialized bitmap New drbd meta data block successfully created. success
Démarrage du service drbd
On démarre le service drbd et on l'enlève à chkconfig sur les deux noeuds ( sql1 + sql2 )
# /etc/init.d/drbd start # chkconfig drbd off
On note que le service drbd démarre en secondaire. On va donc forcer le primaire ( sql1 ) à se répliquer sur le secondaire ( sql2 ) pour ce premier démarrage.
La commande suivante n'est à lancer que sur le primaire ( sql1 )
# drbdadm -- --overwrite-data-of-peer primary mysql
Maintenant on va attendre que les partitions soient synchronisées. Ce que l'on peut vérifier par la commande : cat /proc/drbd. Vu la taille de notre partition ( 100Go ), ce peut être un peu long ( voir beaucoup ).
Ici, le processus n'est pas terminé.
# cat /proc/drbd
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r----
ns:237568 nr:0 dw:0 dr:237568 al:0 bm:14 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:104616796
[>....................] sync'ed: 0.3% (102164/102396)M delay_probe: 44
finish: 2:39:28 speed: 10,816 (10,328) K/sec
Là, le processus est terminé
# cat /proc/drbd
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r---n
ns:105395060 nr:0 dw:1780684 dr:103614448 al:849 bm:6400 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
On ajoute cette ligne au fichier /etc/fstab pour le montage de notre partition drbd. Celle-ci ne sera pas montée automatiquement au boot mais soit à la main, soit avec heartbeat/corosync. A rajouter sur les deux noeuds ( mail3 + mail 4 )
/dev/drbd0 /var/lib/mysql ext4 defaults,noauto 0 0
Installation de MySQL
Sur le serveur primaire ( sql1 ), avant l'installation de <package>MySQL-server</package>, on créer le répertoire <path>/var/lib/mysql</path>, ainsi qu'un système de fichier sur la partition drbd et et on monte la partition drbd
mkfs -t ext4 -L datadir /dev/drbd0 mkdir -p /var/lib/mysql mount /var/lib/mysql
Puis sur les deux serveurs, on installe
yum install mysql-server MySQL-conf-prod mysql-client mysql-shared
Sur le secondaire ( sql2 ), le répertoire <path>/var/lib/mysql</path> n'a aucune importance. On supprime son contenu et on supprime le démarrage automatique du service.
rm -rf /var/lib/mysql/* chkconfig off mysql
Il s'agit simplement que le système soit informé de l'installation et que tous fichier externe à <path>/var/lib/mysql</path> soit installé/modifié.
Sur le serveur primaire ( sql1 ) On supprime le démarrage automatique du service, on initialise les service et on le démarre.
chkconfig off mysql mysql_install_db mysql_secure_installation /etc/init.d/mysql start
Test failover manuel
En l'état le service est hautement disponible à la manivelle.
Voici la marche à suivre:
Sur le primaire ( qui va devenir secondaire )
- Arrêt du service MySQL
/etc/init.d/mysql stop
- Démontage de la partition
umount /var/lib/mysql
- Passage en secondaire de la partition drbd
drbdadm secondary mysql
Sur le secondaire ( qui va devenir primaire )
- Passage en primaire de la partition drbd
drbdadm primary mysql
- Montage de la partition
mount /var/lib/mysql
- Démarrage du service MySQL
/etc/init.d/mysql start
- Test de mysql
# mysql -p
SysBench
Le programme peut-être téléchargé sur sourceforge
Ormis la régénération des scripts de construction, C'est du grand classique, on décompacte l'archive, on lance le script configure et on lance la compilation avec make
tar xzf sysbench-0.4.12.tar.gz
cd sysbench-0.4.12
libtoolize --force --copy
./autogen.sh
./configure --with-mysql --with-gnu-ld --prefix=/usr/local
make
make install
Benchmark
Test effectués:
- sans binlog et lecture écriture sur partition LVM
- avec binlog et lecture écriture sur partition LVM
- sans binlog et lecture écriture sur partition DRBD
- avec binlog et lecture écriture sur partition DRBD
Préparation et lancement du bench
Création de la base de test
# mysql -p -e "CREATE DATABASE sbtest"
Script de test :
- La base est purgée et repeuplée à chaque groupe de test ( ensemble de tests avec le paramètre thread variant )
- Le paramètre sync_binlog est affiché à chaque test
- Le groupe de test ne comporte pas la partie Read Only
#!/bin/bash
OUPUT_PATH=$1
[ -z ${OUPUT_PATH} ] && OUPUT_PATH='/tmp/bench-didier'
function bench()
{
local testID1=$1
local testID2=$2
if [ -z ${testID1} ]
then
echo "No ID for test number 1"
exit 2
fi
if [ -z ${testID2} ]
then
echo "No ID for test number 2"
exit 2
fi
mysql -pb2p2012web -e 'SHOW VARIABLES LIKE "sync_binlog"'
for thread in 1 8 16 24 32
do
echo "Process test ${testID1} with ${thread} threads"
/usr/local/bin/sysbench --test=oltp --db-driver=mysql --num-threads=${thread} \
--mysql-host=localhost --mysql-user=root --mysql-password=b2p2012web \
--mysql-db=sbtest --max-time=120 --max-requests=0 --oltp-table-size=1000000 \
--oltp-read-only=on run > ${OUPUT_PATH}/test${testID1}-thread${thread}
echo "Process test ${testID2} with ${thread} threads"
/usr/local/bin/sysbench --test=oltp --db-driver=mysql --num-threads=${thread} \
--mysql-host=localhost --mysql-user=root --mysql-password=b2p2012web \
--mysql-db=sbtest --max-time=120 --max-requests=0 --oltp-table-size=1000000 \
--oltp-read-only=off run > ${OUPUT_PATH}/test${testID2}-thread${thread}
done
}
function initMySQL()
{
local sync_binlog=$1
if [ -z ${sync_binlog} ]
then
echo "No binlog value"
exit 2
fi
mysql -pb2p2012web -e "SET GLOBAL sync_binlog=${sync_binlog}"
sysbench --test=oltp --db-driver=mysql --mysql-user=root --mysql-password=b2p2012web \
--mysql-db=sbtest --mysql-host=localhost --mysql-table-engine=innodb cleanup
sysbench --test=oltp --db-driver=mysql --mysql-user=root --mysql-password=b2p2012web \
--mysql-db=sbtest --mysql-host=localhost --mysql-table-engine=innodb prepare
}
mkdir -p ${OUPUT_PATH}
rm -f ${OUPUT_PATH}/*
initMySQL 0
bench 1 2
initMySQL 1
bench 3 4
Synthétisation des résultats
Comparatif entre les différentes plateformes, installations et configurations
Benchmark avec 1 thread(s)
| test1 sur cloud sans binlog et sans drbd |
test2 sur cloud avec binlog et sans drbd |
test3 sur cloud sans binlog et avec drbd |
test4 sur cloud avec binlog et avec drbd |
test5 sur lame sans binlog et sans drbd |
test6 sur lame avec binlog et sans drbd | ||
|---|---|---|---|---|---|---|---|
| OLTP test statistics | |||||||
| Queries performed | |||||||
| read | 762650 | 407148 | 698810 | 131250 | 880600 | 761390 | |
| write | 272375 | 145410 | 249575 | 46875 | 314500 | 271925 | |
| other | 108950 | 58164 | 99830 | 18750 | 125800 | 108770 | |
| total | 1143975 | 610722 | 1048215 | 196875 | 1320900 | 1142085 | |
| transactions | 54475 ( 453.95/s ) | 29082 ( 242.34/s ) | 49915 ( 415.96/s ) | 9375 ( 78.12/s ) | 62900 ( 524.16/s ) | 54385 ( 453.21/s ) | |
| deadlocks | 0 ( 0.00/s ) | 0 ( 0.00/s ) | 0 ( 0.00/s ) | 0 ( 0.00/s ) | 0 ( 0.00/s ) | 0 ( 0.00/s ) | |
| R/w requests | 1035025 ( 8625.11/s ) | 552558 ( 4604.51/s ) | 948385 ( 7903.19/s ) | 178125 ( 1484.30/s ) | 1195100 ( 9959.06/s ) | 1033315 ( 8610.94/s ) | |
| Other operations | 108950 ( 907.91/s ) | 58164 ( 484.69/s ) | 99830 ( 831.92/s ) | 18750 ( 156.24/s ) | 125800 ( 1048.32/s ) | 108770 ( 906.42/s ) | |
| Test execution summary | |||||||
| total time | 120.0013s | 120.0036s | 120.0002s | 120.0059s | 120.0013s | 120.0002s | |
| total number of events | 54475 | 29082 | 49915 | 9375 | 62900 | 54385 | |
| total time taken by event execution | 119.6978 | 119.7684 | 119.7094 | 119.9264 | 119.6023 | 119.5980 | |
| per-request statistics | |||||||
| min | 1.88ms | 3.12ms | 1.88ms | 4.93ms | 1.26ms | 1.25ms | |
| avg | 2.20ms | 4.12ms | 2.40ms | 12.79ms | 1.90ms | 2.20ms | |
| max | 40.45ms | 53.68ms | 551.58ms | 87.78ms | 22.10ms | 24.83ms | |
| Approx. 95% | 2.86ms | 4.50ms | 2.93ms | 14.04ms | 2.50ms | 2.52ms | |
| Threads fairness | |||||||
| events (avg/stddev) | 54475.0000/0.00 | 29082.0000/0.00 | 49915.0000/0.00 | 9375.0000/0.00 | 62900.0000/0.00 | 54385.0000/0.00 | |
| execution time (avg/stddev) | 119.6978/0.00 | 119.7684/0.00 | 119.7094/0.00 | 119.9264/0.00 | 119.6023/0.00 | 119.5980/0.00 | |
Benchmark avec 8 thread(s)
| test1 sur cloud sans binlog et sans drbd |
test2 sur cloud avec binlog et sans drbd |
test3 sur cloud sans binlog et avec drbd |
test4 sur cloud avec binlog et avec drbd |
test5 sur lame sans binlog et sans drbd |
test6 sur lame avec binlog et sans drbd | ||
|---|---|---|---|---|---|---|---|
| OLTP test statistics | |||||||
| Queries performed | |||||||
| read | 4972436 | 1355928 | 4596060 | 173600 | 5327014 | 5352634 | |
| write | 1775870 | 484260 | 1641450 | 62000 | 1902505 | 1911655 | |
| other | 710341 | 193704 | 656579 | 24799 | 760997 | 764653 | |
| total | 7458647 | 2033892 | 6894089 | 260399 | 7990516 | 8028942 | |
| transactions | 355167 ( 2959.67/s ) | 96852 ( 807.05/s ) | 328289 ( 2735.68/s ) | 12399 ( 103.27/s ) | 380496 ( 3170.74/s ) | 382322 ( 3185.95/s ) | |
| deadlocks | 7 ( 0.06/s ) | 0 ( 0.00/s ) | 1 ( 0.01/s ) | 1 ( 0.01/s ) | 5 ( 0.04/s ) | 9 ( 0.07/s ) | |
| R/w requests | 6748306 ( 56234.79/s ) | 1840188 ( 15333.86/s ) | 6237510 ( 51978.08/s ) | 235600 ( 1962.19/s ) | 7229519 ( 60244.79/s ) | 7264289 ( 60534.56/s ) | |
| Other operations | 710341 ( 5919.39/s ) | 193704 ( 1614.09/s ) | 656579 ( 5471.37/s ) | 24799 ( 206.54/s ) | 760997 ( 6341.52/s ) | 764653 ( 6371.98/s ) | |
| Test execution summary | |||||||
| total time | 120.0023s | 120.0081s | 120.0027s | 120.0696s | 120.0024s | 120.0023s | |
| total number of events | 355167 | 96852 | 328289 | 12399 | 380496 | 382322 | |
| total time taken by event execution | 957.7460 | 959.1517 | 957.8218 | 960.1471 | 956.6375 | 956.6307 | |
| per-request statistics | |||||||
| min | 1.88ms | 3.25ms | 1.82ms | 8.93ms | 1.50ms | 1.28ms | |
| avg | 2.70ms | 9.90ms | 2.92ms | 77.44ms | 2.51ms | 2.50ms | |
| max | 175.12ms | 134.68ms | 453.46ms | 192.95ms | 29.44ms | 23.86ms | |
| Approx. 95% | 3.37ms | 13.60ms | 3.68ms | 88.67ms | 2.99ms | 2.95ms | |
| Threads fairness | |||||||
| events (avg/stddev) | 44395.8750/689.85 | 12106.5000/30.22 | 41036.1250/434.35 | 1549.8750/1.45 | 47562.0000/442.35 | 47790.2500/597.90 | |
| execution time (avg/stddev) | 119.7183/0.00 | 119.8940/0.00 | 119.7277/0.00 | 120.0184/0.02 | 119.5797/0.00 | 119.5788/0.00 | |
Benchmark avec 16 thread(s)
| test1 sur cloud sans binlog et sans drbd |
test2 sur cloud avec binlog et sans drbd |
test3 sur cloud sans binlog et avec drbd |
test4 sur cloud avec binlog et avec drbd |
test5 sur lame sans binlog et sans drbd |
test6 sur lame avec binlog et sans drbd | ||
|---|---|---|---|---|---|---|---|
| OLTP test statistics | |||||||
| Queries performed | |||||||
| read | 8554546 | 1326010 | 7279678 | 172662 | 9637152 | 9734634 | |
| write | 3055195 | 473575 | 2599885 | 61665 | 3441840 | 3476655 | |
| other | 1222074 | 189430 | 1039951 | 24666 | 1376730 | 1390655 | |
| total | 12831815 | 1989015 | 10919514 | 258993 | 14455722 | 14601944 | |
| transactions | 611035 ( 5091.82/s ) | 94715 ( 789.18/s ) | 519974 ( 4333.02/s ) | 12333 ( 102.65/s ) | 688362 ( 5736.24/s ) | 695324 ( 5794.25/s ) | |
| deadlocks | 4 ( 0.03/s ) | 0 ( 0.00/s ) | 3 ( 0.02/s ) | 0 ( 0.00/s ) | 6 ( 0.05/s ) | 7 ( 0.06/s ) | |
| R/w requests | 11609741 ( 96745.25/s ) | 1799585 ( 14994.50/s ) | 9879563 ( 82327.80/s ) | 234327 ( 1950.34/s ) | 13078992 ( 108989.51/s ) | 13211289 ( 110091.83/s ) | |
| Other operations | 1222074 ( 10183.68/s ) | 189430 ( 1578.37/s ) | 1039951 ( 8666.06/s ) | 24666 ( 205.30/s ) | 1376730 ( 11472.53/s ) | 1390655 ( 11588.56/s ) | |
| Test execution summary | |||||||
| total time | 120.0032s | 120.0163s | 120.0028s | 120.1469s | 120.0023s | 120.0024s | |
| total number of events | 611035 | 94715 | 519974 | 12333 | 688362 | 695324 | |
| total time taken by event execution | 1915.7032 | 1919.2213 | 1916.1328 | 1921.0758 | 1914.9206 | 1914.8667 | |
| per-request statistics | |||||||
| min | 2.02ms | 3.63ms | 2.03ms | 9.80ms | 1.69ms | 1.70ms | |
| avg | 3.14ms | 20.26ms | 3.69ms | 155.77ms | 2.78ms | 2.75ms | |
| max | 388.10ms | 268.02ms | 2806.90ms | 305.93ms | 98.29ms | 154.89ms | |
| Approx. 95% | 4.11ms | 31.00ms | 5.15ms | 178.31ms | 3.30ms | 3.08ms | |
| Threads fairness | |||||||
| events (avg/stddev) | 38189.6875/430.66 | 5919.6875/15.96 | 32498.3750/420.45 | 770.8125/2.27 | 43022.6250/454.00 | 43457.7500/469.96 | |
| execution time (avg/stddev) | 119.7315/0.00 | 119.9513/0.01 | 119.7583/0.00 | 120.0672/0.04 | 119.6825/0.00 | 119.6792/0.00 | |
Benchmark avec 24 thread(s)
| test1 sur cloud sans binlog et sans drbd |
test2 sur cloud avec binlog et sans drbd |
test3 sur cloud sans binlog et avec drbd |
test4 sur cloud avec binlog et avec drbd |
test5 sur lame sans binlog et sans drbd |
test6 sur lame avec binlog et sans drbd | ||
|---|---|---|---|---|---|---|---|
| OLTP test statistics | |||||||
| Queries performed | |||||||
| read | 8007132 | 1304828 | 7263214 | 175784 | 8929564 | 8972768 | |
| write | 2859690 | 466010 | 2594005 | 62780 | 3189130 | 3204560 | |
| other | 1143875 | 186403 | 1037602 | 25112 | 1275651 | 1281823 | |
| total | 12010697 | 1957241 | 10894821 | 263676 | 13394345 | 13459151 | |
| transactions | 571937 ( 4765.96/s ) | 93201 ( 776.50/s ) | 518801 ( 4322.92/s ) | 12556 ( 104.43/s ) | 637825 ( 5315.06/s ) | 640911 ( 5340.74/s ) | |
| deadlocks | 1 ( 0.01/s ) | 1 ( 0.01/s ) | 0 ( 0.00/s ) | 0 ( 0.00/s ) | 1 ( 0.01/s ) | 1 ( 0.01/s ) | |
| R/w requests | 10866822 ( 90553.46/s ) | 1770838 ( 14753.61/s ) | 9857219 ( 82135.51/s ) | 238564 ( 1984.17/s ) | 12118694 ( 100986.23/s ) | 12177328 ( 101474.18/s ) | |
| Other operations | 1143875 ( 9531.93/s ) | 186403 ( 1553.00/s ) | 1037602 ( 8645.84/s ) | 25112 ( 208.86/s ) | 1275651 ( 10630.12/s ) | 1281823 ( 10681.48/s ) | |
| Test execution summary | |||||||
| total time | 120.0045s | 120.0274s | 120.0117s | 120.2339s | 120.0034s | 120.0042s | |
| total number of events | 571937 | 93201 | 518801 | 12556 | 637825 | 640911 | |
| total time taken by event execution | 2875.9517 | 2879.3811 | 2876.2007 | 2882.6813 | 2875.2948 | 2875.2542 | |
| per-request statistics | |||||||
| min | 2.08ms | 3.66ms | 2.08ms | 10.96ms | 1.67ms | 1.63ms | |
| avg | 5.03ms | 30.89ms | 5.54ms | 229.59ms | 4.51ms | 4.49ms | |
| max | 528.54ms | 383.68ms | 892.97ms | 460.99ms | 54.49ms | 48.65ms | |
| Approx. 95% | 9.45ms | 52.51ms | 10.02ms | 244.02ms | 9.30ms | 9.04ms | |
| Threads fairness | |||||||
| events (avg/stddev) | 23830.7083/307.02 | 3883.3750/20.98 | 21616.7083/257.97 | 523.1667/1.55 | 26576.0417/397.44 | 26704.6250/421.47 | |
| execution time (avg/stddev) | 119.8313/0.00 | 119.9742/0.01 | 119.8417/0.00 | 120.1117/0.07 | 119.8040/0.00 | 119.8023/0.00 | |
Benchmark avec 32 thread(s)
| test1 sur cloud sans binlog et sans drbd |
test2 sur cloud avec binlog et sans drbd |
test3 sur cloud sans binlog et avec drbd |
test4 sur cloud avec binlog et avec drbd |
test5 sur lame sans binlog et sans drbd |
test6 sur lame avec binlog et sans drbd | ||
|---|---|---|---|---|---|---|---|
| OLTP test statistics | |||||||
| Queries performed | |||||||
| read | 7656782 | 1287524 | 6343358 | 176120 | 8397284 | 8428868 | |
| write | 2734565 | 459830 | 2265485 | 62900 | 2999030 | 3010310 | |
| other | 1093826 | 183932 | 906193 | 25159 | 1199611 | 1204123 | |
| total | 11485173 | 1931286 | 9515036 | 264179 | 12595925 | 12643301 | |
| transactions | 546913 ( 4557.40/s ) | 91966 ( 766.17/s ) | 453096 ( 3775.70/s ) | 12579 ( 104.57/s ) | 599805 ( 4997.94/s ) | 602061 ( 5016.92/s ) | |
| deadlocks | 0 ( 0.00/s ) | 0 ( 0.00/s ) | 1 ( 0.01/s ) | 1 ( 0.01/s ) | 1 ( 0.01/s ) | 1 ( 0.01/s ) | |
| R/w requests | 10391347 ( 86590.54/s ) | 1747354 ( 14557.14/s ) | 8608843 ( 71738.40/s ) | 239020 ( 1986.98/s ) | 11396314 ( 94961.01/s ) | 11439178 ( 95321.57/s ) | |
| Other operations | 1093826 ( 9114.79/s ) | 183932 ( 1532.33/s ) | 906193 ( 7551.40/s ) | 25159 ( 209.15/s ) | 1199611 ( 9995.89/s ) | 1204123 ( 10033.84/s ) | |
| Test execution summary | |||||||
| total time | 120.0056s | 120.0342s | 120.0033s | 120.2933s | 120.0105s | 120.0062s | |
| total number of events | 546913 | 91966 | 453096 | 12579 | 599805 | 602061 | |
| total time taken by event execution | 3836.1404 | 3839.5396 | 3836.5610 | 3844.4712 | 3835.4883 | 3835.3976 | |
| per-request statistics | |||||||
| min | 2.10ms | 3.35ms | 2.05ms | 9.20ms | 1.49ms | 1.78ms | |
| avg | 7.01ms | 41.75ms | 8.47ms | 305.63ms | 6.39ms | 6.37ms | |
| max | 518.17ms | 524.17ms | 8542.90ms | 708.98ms | 677.23ms | 887.70ms | |
| Approx. 95% | 15.84ms | 73.80ms | 18.15ms | 321.00ms | 14.76ms | 14.56ms | |
| Threads fairness | |||||||
| events (avg/stddev) | 17091.0312/158.44 | 2873.9375/14.92 | 14159.2500/139.31 | 393.0938/0.88 | 18743.9062/144.63 | 18814.4062/190.17 | |
| execution time (avg/stddev) | 119.8794/0.00 | 119.9856/0.01 | 119.8925/0.00 | 120.1397/0.09 | 119.8590/0.00 | 119.8562/0.00 | |