Voor de storage benchmark suite van Tweakers.net wil ik een aantal nieuwe benchmarks maken die het schijfgebruik van een server simuleren. Hiervoor maak ik gebruik van de tools WinTrace32 en RankDisk uit Intel IPEAK Storage Performance Toolkit. Met deze tools kun je traces maken van de schijfbenaderingen in Windows. Die traces kun je vervolgens met RankDisk op een willekeurige schijf of array terugspelen waarna de gemiddelde service time van de I/O operaties als resultaat wordt teruggegeven.
Nu is het natuurlijk erg moeilijk om een representatieve storage benchmark te maken aangezien er enorme verschillen zijn in toepassingen, workloads en datasets. Toch ben ik van mening dat een benchmark die gebaseerd is op traces van een échte (of realistische gesimuleerde) server representatiever is dan een puur synthetische benchmarks zoals bijvoorbeeld IOMeter (waar je alleen kunt aangeven hoe willekeurig een toegangspatroon is, wat de verdeling is van de request groottes en wat de verhouding is tussen lees en schrijf operaties). Wat je in de praktijk vaak zult zien is dat er hotspots op de schijf zijn waar veel data naartoe wordt geschreven, bijvoorbeeld omdat er zich logfiles bevinden. Slimme RAID-adapters kunnen dat goed optimaliseren door schrijfoperaties gecombineerd weg te schrijven. De prestaties in IOMeter zijn daarentegen vooral afhankelijk van de toegangstijd van de schijven en het vermogen van de schijven en de controller om aan command queuing te doen.
Om een redelijk beeld te krijgen van de server prestaties wil ik een trace maken van vijf verschillende scenario's:
- Database-server
- Fileserver
- Mailserver
- 'Workgroup server': combinatie van file-, mail-, proxy-, web- en een simpele database-server op één systeem
- Mediaserver: video- en audiostreaming
- Backupserver
Ideeën voor andere scenario's zijn welkom. Een webserversimulatie laat ik achterwege omdat webservers zelden gebottlenecked worden door disk I/O. Ik heb al enige ervaring opgedaan met het maken van traces voor serverbenchmarks. Daaruit kan ik opmaken dat de belasting in ieder geval behoorlijk hoog moet te zijn om te voorkomen dat bepaalde slimme RAID-adapters onrealistisch goed gaan presteren. Een benchmark waarin een LSI Logic adapter vijf keer snelle is dan een Adaptec vertrouw ik niet helemaal. Niet dat de prestatie van de LSI adapter verkeerd is, maar het is de vraag of dergelijke verhouding zich ook in de werkelijkheid zullen voordoen. Door te zorgen voor grote datasets en een flinke hoeveelheid concurrency zullen intelligente RAID-adapters heb in ieder geval niet gemakkelijk krijgen.
Voor de database server kan ik zelf een simulatie in elkaar sleutelen met de databases van Tweakers.net en GoT. Een backupserver simuleren kan ook niet moeilijk zijn, hoewel ik me wel afvraag hoe dergelijke servers in de praktijk wordt gebruikt. Het gebruik van (ATA-)harde schijven voor backup wordt steeds populairder. Als dergelijke machines 's nachts backups van meerdere servers tegelijkertijd te verwerken krijgen dan is performance belangrijk.
Het probleem is dat ik meer een hardwareman dan een softwareman ben. Enige praktijkervaring met het beheren van servers heb ik niet. De systemen moet realistisch geconfigureerd worden en er moet een workload op gedraaid worden die overeenkomstig de werkelijkheid kan zijn. Het gedrag van users kan gesimuleerd worden met behulp van PHP scripts en apachebench (om hoge concurrency levels te genereren, mav veel gelijktijdige 'gebruikers' of connecties).
Wat ik in dit topic concreet wil vragen is of er mensen zijn die (concrete gedetailleerde) ideeën hebben voor scenario's die gesimuleerd kunnen worden en of iemand binnenkort eens zin heeft om doordeweeks of in het weekend in Amersfoort of in Ruurlo een Windows Server 2003 systeem te configureren met de software die nodig is om het bovenstaande te realiseren (bijv. Exchange). Ik heb een dual Opteron systeem met 2GB RAM en SCSI RAID die als server kan dienen en ik kan beschikken over een gigabit netwerk met zeven pc's (waarvan twee dual processor en vier met gigabit ethernet) die als clients kunnen dienen.
Voor de duidelijkheid: het doel is om disk I/O te genereren dus zo'n server mag grof (en vlug) opgezet worden. Het moet onder Windows draaien vanwege IPEAK Storage Performance Toolkit.
Nu is het natuurlijk erg moeilijk om een representatieve storage benchmark te maken aangezien er enorme verschillen zijn in toepassingen, workloads en datasets. Toch ben ik van mening dat een benchmark die gebaseerd is op traces van een échte (of realistische gesimuleerde) server representatiever is dan een puur synthetische benchmarks zoals bijvoorbeeld IOMeter (waar je alleen kunt aangeven hoe willekeurig een toegangspatroon is, wat de verdeling is van de request groottes en wat de verhouding is tussen lees en schrijf operaties). Wat je in de praktijk vaak zult zien is dat er hotspots op de schijf zijn waar veel data naartoe wordt geschreven, bijvoorbeeld omdat er zich logfiles bevinden. Slimme RAID-adapters kunnen dat goed optimaliseren door schrijfoperaties gecombineerd weg te schrijven. De prestaties in IOMeter zijn daarentegen vooral afhankelijk van de toegangstijd van de schijven en het vermogen van de schijven en de controller om aan command queuing te doen.
Om een redelijk beeld te krijgen van de server prestaties wil ik een trace maken van vijf verschillende scenario's:
- Database-server
- Fileserver
- Mailserver
- 'Workgroup server': combinatie van file-, mail-, proxy-, web- en een simpele database-server op één systeem
- Mediaserver: video- en audiostreaming
- Backupserver
Ideeën voor andere scenario's zijn welkom. Een webserversimulatie laat ik achterwege omdat webservers zelden gebottlenecked worden door disk I/O. Ik heb al enige ervaring opgedaan met het maken van traces voor serverbenchmarks. Daaruit kan ik opmaken dat de belasting in ieder geval behoorlijk hoog moet te zijn om te voorkomen dat bepaalde slimme RAID-adapters onrealistisch goed gaan presteren. Een benchmark waarin een LSI Logic adapter vijf keer snelle is dan een Adaptec vertrouw ik niet helemaal. Niet dat de prestatie van de LSI adapter verkeerd is, maar het is de vraag of dergelijke verhouding zich ook in de werkelijkheid zullen voordoen. Door te zorgen voor grote datasets en een flinke hoeveelheid concurrency zullen intelligente RAID-adapters heb in ieder geval niet gemakkelijk krijgen.
Voor de database server kan ik zelf een simulatie in elkaar sleutelen met de databases van Tweakers.net en GoT. Een backupserver simuleren kan ook niet moeilijk zijn, hoewel ik me wel afvraag hoe dergelijke servers in de praktijk wordt gebruikt. Het gebruik van (ATA-)harde schijven voor backup wordt steeds populairder. Als dergelijke machines 's nachts backups van meerdere servers tegelijkertijd te verwerken krijgen dan is performance belangrijk.
Het probleem is dat ik meer een hardwareman dan een softwareman ben. Enige praktijkervaring met het beheren van servers heb ik niet. De systemen moet realistisch geconfigureerd worden en er moet een workload op gedraaid worden die overeenkomstig de werkelijkheid kan zijn. Het gedrag van users kan gesimuleerd worden met behulp van PHP scripts en apachebench (om hoge concurrency levels te genereren, mav veel gelijktijdige 'gebruikers' of connecties).
Wat ik in dit topic concreet wil vragen is of er mensen zijn die (concrete gedetailleerde) ideeën hebben voor scenario's die gesimuleerd kunnen worden en of iemand binnenkort eens zin heeft om doordeweeks of in het weekend in Amersfoort of in Ruurlo een Windows Server 2003 systeem te configureren met de software die nodig is om het bovenstaande te realiseren (bijv. Exchange). Ik heb een dual Opteron systeem met 2GB RAM en SCSI RAID die als server kan dienen en ik kan beschikken over een gigabit netwerk met zeven pc's (waarvan twee dual processor en vier met gigabit ethernet) die als clients kunnen dienen.
Voor de duidelijkheid: het doel is om disk I/O te genereren dus zo'n server mag grof (en vlug) opgezet worden. Het moet onder Windows draaien vanwege IPEAK Storage Performance Toolkit.