Inleiding
Het leek me wel leuk om Xampp eens onder de testbank te leggen en eens wat testen uit te voeren over hoe goed of slecht Xampp presteert onder verschillende omstandigheden.
In dit artikel worden enkel testen op de MySQL database uitgevoerd.
Om stress tests uit te voeren maak ik gebruik van mysqlslap.
Met mysqlslap wordt een simulatie opgestart van meerdere clients die naar een MySQL server connecteren.
Vervolgens wordt een rapport aangemaakt over de verschillende stages.
Volgende stappen worden door mysqlslap uitgevoerd:
- Een schema met tabellen worden aangemaakt. Optioneel kun je zelf een hoeveelheid data laden in de tabellen.
- De load test wordt uitgevoerd. Optioneel kun je hier ook een simulatie maken van meerdere clients.
- Clean up. De tabellen en het schema worden verwijderd.
De MySQL stress-test wordt als volgt uitgevoerd:
- Xampp wordt opgestart op een externe harddisk of USB stick. Vervolgens wordt mysqlslap vanaf het werkstation uitgevoerd.
Overzicht gebruikte hardware en Software
Software
Alle tests werden met Xampp versie 1.7.3 waarbij Xampp draait op een Windows 7 x64 operating systeem. Xampp versie 1.7.3 maakt gebruikt van MySQL 5.1.41.
Specificaties computer
Processor: Intel Core 2 Duo CPU P8600 2.40 GHz
RAM: 4GB RAM
Systeem type: Windows 7 x64
Als media waar Xampp op werd geïnstalleerd heb ik 5 verschillende type externe 2.5 inch harddisk, een USB 2GB Memory stick en een Iomega NAS gebruikt.
De stress test
Mysqlslap wordt telkens uitgevoerd met dezelfde parameters.
Voor de test met InnoDB engine:
mysqlslap --concurrency=10 --iterations=50 --number-int-cols=5 --number-char-cols=10 --auto-generate-sql --engine=InnoDB
Voor de test met MyISAM engine:
mysqlslap --concurrency=10 --iterations=50 --number-int-cols=5 --number-char-cols=10 --auto-generate-sql --engine=MyISAM
De resultaten
Besluit
De prestaties op de externe harddisks leunen dicht bij elkaar aan.
De prestaties van de NAS zijn iets minder. De prestaties van de USB memory stick zijn opvallend slechter.
Algemeen zijn de prestaties met MyISAM beter dan die voor InnoDB, behalve voor de NAS. Via een share presteert InnoDB blijkbaar iets beter dan MyISAM.
Ik heb ook wat testen gedaan met de InnoDB Plugin. De InnoDB Plugin zou sneller moeten zijn dan de InnoDB Buildin, maar daar heb ik onder Windows niets van gemerkt.
Een aantal van deze tests heb ik ook op mijn desktop waar een Intel core i5 in zit uitgevoerd. Maar omdat er zoveel USB devices aan dit toestel zijn aangesloten, waren de resultaten zeer uiteenlopend.
Vooral de testen met de USB Memory stick waren zeer uitleenlopend. Daarom heb ik deze tests niet in dit artikel opgenomen.
Een aantal tests waarvan ik de resultaten ook niet heb toegevoegd zijn tests waarbij mysqlslap vanaf een andere computer wordt uitgevoerd. Daar lagen de verschillen nog dichter bij elkaar.