Ik ben de afgelopen dagen beziggeweest met wat proefbenches op mijn systeem met twaalf Seagate Barracuda Green 2TB drives op twee LSI SAS2008-controllers en vijf OCZ Vertex 30GB drives op de onboard sata-controller van AMD SP5100-southbridge. De cpu is een Opteron 4122 met 32GB RAM. Er werd geboot vanaf een OCZ Vertex 120GB en ik heb er later ook nog een Adata S511 120GB (SandForce-chipset) aan toegevoegd als log-device. Deze hing aan één van de sas 6G-poorten. Verder zat er nog een Qlogic QLE2464 fibre channel-hba in.
OpenIndiana installeren ging zoals eerder gemeld voorspoedig. Ik heb me tot nu toe beziggehouden met het benchen van de prestaties van volumes die via iScsi of fibre channel worden geëxporteerd. Hiervoor heb ik gebruikgemaakt van onze standaard trace-based benchmarks die worden uitgevoerd door Intel NAS Performance Toolkit.
Een iscsi volume target creeëren en deze mounten via de iscsi-initiator van Windows 7 was simpel. Fibre channel was ook niet moeilijk alleen blijkt het niet mogelijk om multipath I/O te gebruiken in Windows 7. Voor MPIO moet je Server 2008 gebruiken.
In de testconfiguratie hingen de twaalf drives in een striped mirror. De l2arc bestond uit vijf Vertex 30GB drives.
De prestaties in de trace-based benchmarks waren nogal wisselvallend. In sommige gevallen was de bovenstaande configuratie niet sneller dan een enkele VelociRaptor 600GB, soms waren de prestaties beter dan van een enkele Vertex 120GB. Het toevoegen van een log-device aan de pool had geen duidelijk positief effect op de prestaties. In bepaalde tests zoals de boot- en game-traces waren de responstijden erg hoog (bijna factor tien hoger dan van een moderne ssd) terwijl deze traces naar verhouding veel goed cachebare reads bevatten. Het inschakelen van caching van prefetch reads (set zfs:l2arc_noprefetch=0) om de l2arc beter te vullen had ook geen duidelijk effect op de prestaties. Het verlagen van zfs_vdev_min_pending (minimale I/O queue van een vdev) van de default van 4 naar 1 had ook geen duidelijk effect. De fluctuaties tussen runs zijn veel hoger dan we normaal gesproken gewend zijn van harde schijven en ssd's wat het vergelijken bemoeilijkt.
De dataset van de trace benchmarks heeft een omvang van 90GB. Tijdens de tests wordt er 43,2GB aan data gelezen. In theorie kan dit gecached worden door de l2arc (5x 30GB). De grootte van de arc was 24,5GB. De l2arc groeide gedurende de tests naar bijna 30GB.
Om de resultaten in perspectief te zetten heb ik een VelociRaptor 600GB en een Vertex 120GB aan de grafieken toegevoegd. Een Vertex is naar huidige maatstaven een trage ssd. De nieuwste modellen zijn gemiddeld een factor twee sneller.
Workstationprestaties (o.a. traces van beeldbewerking in Photoshop, foto's beheren in Lightroom, video-editing in Sony Vegas Pro)
Prestaties van verschillende soorten file copies en I/O op de datapartitie in de Photoshop-, Lightroom- en Vegas Pro-traces.
Bootprestaties, traces van het booten van Windows 7 en het starten van applicaties op twee verschillende systemen. De gemiddelde responstijden waren hier erg hoog.
Trace van I/O op de datapartitie in de Sony Vegas Pro-trace. De trace bestond voornamelijk uit kleine redelijk willekeurige reads afkomstig van het inlezen van frames uit full hd-videofragmenten om deze op de tijdlijn weer te kunnen geven.
Trace van Photoshop, Lightroom inclusief alle activiteit van het besturingssysteem en de Photoshop-scratchfile. Daardoor relatief veel writes. Het zfs san presteert hier vrij goed. Het resultaat is de gemiddelde responstijd, dus lager is beter.
Je ziet in alle bovenstaande grafieken dat de prestaties over het algemeen toenemen als de benchmark wordt herhaald. De verbetering van de prestaties stopt na de derde run:
De bovenstaande resultaten vond ik teleurstellend gezien de specs van de achterliggende hardware (32GB RAM, een l2arc met vijf ssd's van 30GB, dedicated slog-device en twaalf disks in raid 10.
IOMeter liet op zich wel goede resultaten zien. De fileserversimulatie doet I/O's met een uiteenlopende grootte met een verhouding van 80/20 tussen lezen en schrijven bij oplopende queue-depths. Er werd getest op een testbestand van 16GB. De prestaties schalen uitstekend en er wordt blijkbaar goed gebruikgemaakt van de caches gezien het feit dat de prestaties veel hoger liggen dan van een enkele Vertex 120GB.
In IOMeter doet hij 23MB/s op 4K random reads met een queue = 1. Bij queue = 8 schaalt dit naar 104MB/s. Sequentiële reads zijn 156MBs bij queue = 1 en 343MB/s bij een queue van acht uitstaande I/O's. Dit zijn vrij goede resultaten.
Inmiddels heb ik ook Windows Server 2008 R2 geïnstalleerd om te kunnen benchen met multipath I/O. MPIO aan de praat krijgen is eenvoudig en een kwestie van deze feature toevoegen in het beheerdinges van je server. Onder Windows 7 zie je vier disks waarvan er drie niet gebruikt mogen worden omdat Windows herkent dat het om dezelfde volumes gaat die via verschillende paden worden aangeboden. Met AS-SSD haal ik uitstekende resultaten:
Het is me niet helemaal waarom de configuratie in NAS Performance Toolkit nogal matig presteert terwijl ik er uitstekende resultaten uithaal in AS-SSD en IOMeter.