Wij hebben recent besloten over te gaan stappen (vanwege de goede verhalen. zie oa: http://www.anandtech.com/IT/showdoc.aspx?i=2447&p=1 ) op een Dual DualCore Opteron (64bit) systeem voor onze database activiteiten.
Dit wilde we slim aan gaan pakken en hebben besloten te gaan kijken wat de feitenlijke voordelen zijn van het systeem. Hiervoor hebben we besloten een aantal benchmarks te draaien zodat we duidelijk inzicht hadden in hoe groot snelheids winsten wel of niet zijn.
Aangezien we alleen met MySQL draaien hebben we besloten om alleen gebruik te maken van de MySQL benchmarks, SQLBench welke standaard bij een mysql distributie zit, en daar onze resultaten op te baseren.
Het OS is de 64bit variant met SMP kernel. En een mysql 64bit versie
In de basis:
1 Tyan K8S PRO
op dit moment:
1 SATA Disk (120Gb)
wordt uitgebreid naar 2x u320 scsi 15krpm in raid-0 met op een LSI raid controler met 1gb onboard cache
Met de volgende specifieke configuratie verschillen
1x Opteron 270 (DualCore 2.2Ghz 64bit)
2x 1GB Apacer 3200Mhz
2x Opteron 270 (DualCore 2.2Ghz 64bit)
4x 1Gb Apacer 3200Mhz (2gb per cpu)
Dit alles is vergeleken met onze huidige snelste 32bit (dedicated) MySQL Database:
2x Xeon (HT 2.4Ghz 32bit)
2x 73Gb U320SCSI (stripe-set)
4x 1Gb 3200Mhz
De volgende resultaten zijn benchmark total results:
XEON2-DEBIAN32 3237,00 (100,00%)
OPT2-FBSD64 10427,00 ( 31,04%)
OPT2-DEBIAN64 812,00 (398,65%)
OPT2-SOLARIS 8505,97 ( 38,06%)
Hierin is de XEON het referentie systeem
Later is besloten om de 2e cpu en de extra 2gb geheugen te bestellen en daarna weer te benchmarken.
Na het binnenkomen van de extra cpu en het extra geheugen zijn we nog een keer gaan testen en uit gegaan van het Debian OS omdat die verreweg de beste prestaties tot dan toe leverden.
Tot onze verbasing leverde dit het volgende resultaat:
OPT4-DEBIAN64 1399,00 (231.38%)
Dit betekende dus een achteruitgang in prestatie. Specifieker gekeken (op de verschillende onderdelen van de mysql benchmark) bleken er wel verschillen te zitten tussen de single dualCore en de dual dualCore, maar op het geheel gezien is het dus een achteruitgang.
Om configuratie verschillen te voorkomen hebben we toen besloten om nogmaals te testen met 1 CPU en te tweaken tot we het volgende resultaat kregen (tweaken, 2x runnen van de benchmark om caching te excluden/middelen) :
OPT2-DEBIAN64 695.00 (465,76%)
Hierna hebben we zowel de CPU als het extra geheugen er in gedaan en kwamen we op het volgende resultaat:
OPT4-DEBIAN64 739.00 (438,02%)
Hoe dit komt is ons tot nu toe een raadsel.
Mogelijkheden waar van wij denken dat het eventueel mogelijk zou kunnen zijn:
1. configuratie fout
2. Compileer fout (mysql)
3. compileer fout (kernel)
4. threading problemen
5. mysql is niet schaalbaar (1cpu ->2cpu groot verschil. 2cpu->3 of 4cpu's minder groot verschil)
6. Er werd geopperd dat het zou kunnen komen door de hevige context switching van de cpu's waardoor de snelheids winst teniet gedaan werd. Zelf leek mij dit niet echt logisch. Je gooit er 2x 2.2Ghz extra tegenaan en het maakt geen verschil, of zelfs achteruitgang.
7. MySQL benchmark support geen multi threading
8. Mysql benchmark is geen goede representatie van een real-life environment.
We hebben de my.cnf in verschillende configuraties gehad (varierend van default tot custom made) en deze hadden weinig tot geen extra positief effect
Als laatste proberen wij de volgende configuratie nog welke gebruikt zijn door anandtech in hun mysql tests. Heleaas is de benchmark methode die zij gebruiken een in-house benchmark methode welke wij niet kunnen gebruiken en is een directe vergelijking met hun helaas niet mogelijk.
Bij anandtech daarentegen komt duidelijk naarvoren dat van dual naar quad opteron weldegelijk een voordeel op moet leveren. Iets wat bij ons totaal niet naar voren komt.
(PS. de Anandtech settings van hierboven geven een resultaat van ~1500 seconden, niet echt lekker dus)
Mocht iemand nog ideeën / suggesties hebben dan hou ik mij van harte aanbevolen.
Voor meer informatie over de resultaten van de benchmarks zie:
http://incursion.gamepoint.net/BenchMarkResult.xls
Dit wilde we slim aan gaan pakken en hebben besloten te gaan kijken wat de feitenlijke voordelen zijn van het systeem. Hiervoor hebben we besloten een aantal benchmarks te draaien zodat we duidelijk inzicht hadden in hoe groot snelheids winsten wel of niet zijn.
Aangezien we alleen met MySQL draaien hebben we besloten om alleen gebruik te maken van de MySQL benchmarks, SQLBench welke standaard bij een mysql distributie zit, en daar onze resultaten op te baseren.
Het OS is de 64bit variant met SMP kernel. En een mysql 64bit versie
In de basis:
1 Tyan K8S PRO
op dit moment:
1 SATA Disk (120Gb)
wordt uitgebreid naar 2x u320 scsi 15krpm in raid-0 met op een LSI raid controler met 1gb onboard cache
Met de volgende specifieke configuratie verschillen
1x Opteron 270 (DualCore 2.2Ghz 64bit)
2x 1GB Apacer 3200Mhz
2x Opteron 270 (DualCore 2.2Ghz 64bit)
4x 1Gb Apacer 3200Mhz (2gb per cpu)
Dit alles is vergeleken met onze huidige snelste 32bit (dedicated) MySQL Database:
2x Xeon (HT 2.4Ghz 32bit)
2x 73Gb U320SCSI (stripe-set)
4x 1Gb 3200Mhz
De volgende resultaten zijn benchmark total results:
XEON2-DEBIAN32 3237,00 (100,00%)
OPT2-FBSD64 10427,00 ( 31,04%)
OPT2-DEBIAN64 812,00 (398,65%)
OPT2-SOLARIS 8505,97 ( 38,06%)
Hierin is de XEON het referentie systeem
Later is besloten om de 2e cpu en de extra 2gb geheugen te bestellen en daarna weer te benchmarken.
Na het binnenkomen van de extra cpu en het extra geheugen zijn we nog een keer gaan testen en uit gegaan van het Debian OS omdat die verreweg de beste prestaties tot dan toe leverden.
Tot onze verbasing leverde dit het volgende resultaat:
OPT4-DEBIAN64 1399,00 (231.38%)
Dit betekende dus een achteruitgang in prestatie. Specifieker gekeken (op de verschillende onderdelen van de mysql benchmark) bleken er wel verschillen te zitten tussen de single dualCore en de dual dualCore, maar op het geheel gezien is het dus een achteruitgang.
Om configuratie verschillen te voorkomen hebben we toen besloten om nogmaals te testen met 1 CPU en te tweaken tot we het volgende resultaat kregen (tweaken, 2x runnen van de benchmark om caching te excluden/middelen) :
OPT2-DEBIAN64 695.00 (465,76%)
Hierna hebben we zowel de CPU als het extra geheugen er in gedaan en kwamen we op het volgende resultaat:
OPT4-DEBIAN64 739.00 (438,02%)
Hoe dit komt is ons tot nu toe een raadsel.
Mogelijkheden waar van wij denken dat het eventueel mogelijk zou kunnen zijn:
1. configuratie fout
2. Compileer fout (mysql)
3. compileer fout (kernel)
4. threading problemen
5. mysql is niet schaalbaar (1cpu ->2cpu groot verschil. 2cpu->3 of 4cpu's minder groot verschil)
6. Er werd geopperd dat het zou kunnen komen door de hevige context switching van de cpu's waardoor de snelheids winst teniet gedaan werd. Zelf leek mij dit niet echt logisch. Je gooit er 2x 2.2Ghz extra tegenaan en het maakt geen verschil, of zelfs achteruitgang.
7. MySQL benchmark support geen multi threading
8. Mysql benchmark is geen goede representatie van een real-life environment.
We hebben de my.cnf in verschillende configuraties gehad (varierend van default tot custom made) en deze hadden weinig tot geen extra positief effect
Als laatste proberen wij de volgende configuratie nog welke gebruikt zijn door anandtech in hun mysql tests. Heleaas is de benchmark methode die zij gebruiken een in-house benchmark methode welke wij niet kunnen gebruiken en is een directe vergelijking met hun helaas niet mogelijk.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| Read_buffer=2GB
Port=3306
socket = /var/lib/mysql/mysql.sock
skip-locking
set-variable = max_user_connections= 2000
set-variable = max_connections= 2000
key_buffer=2G
Read_buffer=2G
table_cache=1024
tmp_table=128M
max_heap_table=256M
read_rnd_buffer = 64M
thread_cache=16
net_buffer_length=16k |
Bij anandtech daarentegen komt duidelijk naarvoren dat van dual naar quad opteron weldegelijk een voordeel op moet leveren. Iets wat bij ons totaal niet naar voren komt.
(PS. de Anandtech settings van hierboven geven een resultaat van ~1500 seconden, niet echt lekker dus)
Mocht iemand nog ideeën / suggesties hebben dan hou ik mij van harte aanbevolen.
Voor meer informatie over de resultaten van de benchmarks zie:
http://incursion.gamepoint.net/BenchMarkResult.xls
[ Voor 6% gewijzigd door MaxxMark op 16-02-2006 12:57 ]
T: @mark_prins - Kick ass developers: www.omniscale.nl - HT: Where it all went wrong...
