MySQL - Data drive
Voor de simulatie van een database server maakten we gebruiken van onze eigen Tweakers.net- en GoT-databases. De gehele Tweakers.net-omgeving werd overgezet naar onze testserver met MySQL 4.0 onder Windows Server 2003 en PHP/Apache op de Windows-clients. Er zullen ongetwijfeld mensen zijn die menen dat MySQL geen volwaardige database-server is en om die reden ongeschikt is om schijfbewerkingen te produceren voor een scenario van een database-server. Feit is dat MySQL als sinds jaar en dag ondersteuning heeft voor transacties en voor bepaalde toepassingen uitstekend inzetbaar is. Bovendien is het uiteindelijke doel van deze exercitie het verkrijgen van I/O traces van een database-server. De toegangspatronen, die door de verschillende databaseprogramma's worden gegenereerd, zullen in grote lijnen vergelijkbaar zijn voor gelijke workloads. Belangrijker is de specifieke samenstelling van de database en de workload.
De databases van Tweakers.net en GoT zijn redelijk fors van omvang en resulteren in een dataset van 20GB. De queries bestaan voor een groot deel uit selects maar ook worden er veel inserts en updates gedaan voor het bijhouden van bezoekersstatistieken. De logs en de data werden op aparte arrays opgeslagen, zoals dat ook veelvuldig in de praktijk gebeurd. De MySQL data drive-test is gebaseerd op de traces van de data array. Door de scheiding logs en data zijn er aanzienlijk minder schrijfoperaties in de mix zijn opgenomen. De trace werd gestart met een volle disk cache van het besturingssysteem en een volle query en data cache van de database-server. 84 procent van de dataverplaatsing bestond uit leesacties. De gemiddelde lengte van de queue bedroeg 12 I/O's met pieken tot 50 uitstaande I/O's. Zou de activiteit van de logs op de data-array hebben plaatsgevonden, dan zou ongeveer 64 procent van de operaties uit leesacties hebben bestaan.
| Statistieken MySQL - Data drive trace | |||
|---|---|---|---|
| Harde schijf | 4x Cheetah 15K.3 36GB RAID 10 |
Controller | LSI MegaRAID SCSI 320-2X 512MB |
| Leesoperaties | 211.824 (90,9%) | Data gelezen | 3.424MB (83,4%) |
| Schrijfoperaties | 21.243 (9,1%) | Data geschreven | 656MB (16,6%) |
| Totale operaties | 233.067 | Totaal verplaatst | 4.080MB |
| Lees transfer rate | 7,07MB/s | Gemiddelde zoekafstand | 11,2M sectors |
| Schrijf transfer rate | 1,35MB/s | Gemiddelde queue-diepte | 12,19 I/O's |
| Totale transfer rate | 8,42MB/s | Gemiddelde schijfbelasting | 86,9% |
| Duur trace | 8m 04s | Gemiddelde transfergrootte | 18,0KB |
Uitvoering
Gebruik RankDisk (onderdeel van Intel IPEAK Storage Performance Toolkit) om de onderstaande workload te testen op een ongepartioneerde fysieke schijf of array. Het nummer van de gewenste fysieke schijf is terug te vinden in Windows Disk Management. RankDisk rapporteert de gemiddelde service time per I/O. Dit resultaat kan omgerekend worden naar I/O's per seconde door 1000ms te delen door de service time (in milliseconden). RankDisk kan de bestaande gegevens op de schijf corrupt maken. Daarom alleen testen op een lege schijf.|
|