Inleiding
Het is inmiddels ruim negen jaar gelegen dat de eerste systemen met PCI, Vesa en OPTi local bus verkrijgbaar werden. De introductie van deze technologieën zorgde destijds voor een revolutie in busbandbreedte, die tot dat moment beperkt was tot schamele 15MB/s van de ISA-bus. Hoewel Vesa Local Bus (VLB) in eerste instantie een voorsprong in acceptatie mocht genieten, kwam PCI uiteindelijk als winnaar uit de 'bus'. De gevolgen ondervinden we nog dagelijks, want dezelfde PCI-technologie van negen jaar geleden wordt nog steeds in het merendeel van de desktops gebruikt. De kloksnelheid van 33MHz, de busbreedte van 32-bit en de maximale bandbreedte van 133MB/s zijn al die jaren gelijk gebleven.
Het mag weinig verbazing scheppen dat de honger naar busbandbreedte in het afgelopen decennium enorm is toegenomen. Begin jaren negentig mocht een harde schijf zichzelf stevig op de borst kloppen wanneer een transfer rate van meer dan 3MB/s op de klok werd gezet. Componenten zoals 8-kanaals geluidskaarten, TV-kaarten, RAID-controllers en gigabit netwerkkaarten waren nog niet verkrijgbaar of schreeuwend duur. Heden ten dage is het geen enkele probleem om een situatie te scheppen waarin de bandbreedte van de PCI-bus een bottleneck vormt. Server- en workstationsystemen zijn daarom al jaren geleden overgestapt op snellere PCI-varianten met een busbreedte van 64-bit en kloksnelheden van 66MHz, 100MHz of 133MHz. Vaak zijn deze systemen bovendien voorzien van meerdere bussen, zodat PCI devices elkaar niet of nauwelijks meer in de weg zitten. De voordelen zijn evident: hogere bandbreedte, lagere latencies en minder conflicten tussen devices.
Helaas worden de snellere PCI-varianten te duur bevonden voor desktopsystemen. Een opvolger van de oude vertrouwde 32-bit 33MHz PCI-bus is gelukkig in de maak in de vorm van PCI Express. PCI Express is een volledige nieuwe technologie, die is gebaseerd op seriële in plaats van parallelle dataoverdracht. De technologie zal in eerste instantie gebruikt worden ter vervanging van de AGP-poort maar zal binnen afzienbare tijd ook de huidige PCI-bus gaan opvolgen.
Eén van de grootste verbruikers van busbandbreedte is RAID storage. Zelfs een eenvoudige stripe van twee 10.000rpm Serial ATA-harde schijven kan de PCI-bus in bepaalde situaties maximaal belasten. Op het forum horen we regelmatig kreten van personen die beweren dat het gebruik van grote RAID-arrays zinloos is op een normale PCI-bus. Zij baseren hun mening op het feit dat een array van twee of meer schijven al snel een hogere sequentiële transfer rate kan genereren dan de PCI-bus aan bandbreedte kan verschaffen. In werkelijkheid is een sequentieel toegangspatroon slechts één van vele mogelijke toegangspatronen. Het openen van een groot bestand in bijvoorbeeld Photoshop zal in het ideale geval inderdaad een kwestie zijn van sequentieel lezen (waarbij de leeskop zich niet naar een andere positie van de schijf hoeft te verplaatsen). Op een schijf met veel fragmentatie zal bij het lezen van grote bestanden al snel enkele extra kopbewegingen ingelast moeten worden. Bij het opstarten van een applicatie waarvan de bestanden ver van elkaar verwijderd zijn of het simultaan uitvoeren van meerdere schijf-intensieve taken, zal de transfer rate ver onder het theoretische maximum zakken. De oorzaak hiervan is de hoge toegangstijd van de harde schijf. Afhankelijk van het toerental en de prestaties van de actuators kost een verandering van koppositie gemiddeld 5,5ms tot meer dan 12,0ms. Elke kopverplaatsing zal daardoor een grote dip in de transfer rate teweegbrengen. De gevolgen kunnen zo groot zijn dat de snelste 15.000rpm harde schijven op een volledig willekeurig toegangspatroon een transfer rate van slechts 4MB/s bereiken, terwijl een sequentiële transfer rate van 75MB/s mogelijk is.

De vraag is dan ook in hoeverre de lage bandbreedte en de hogere latency van de standaard PCI-bus een belemmering vormen voor de real world prestaties in desktop- en serveromgevingen. Om te kijken of snelle RAID-opstellingen daadwerkelijk prestatieverlies kan ondervinden op lage bussnelheden hebben we een tweetal SCSI RAID-adapters in verschillende PCI-configuraties getest. Doelstelling van de test is niet alleen om aan te tonen of de PCI-bus een bottleneck is voor hedendaagse servers en workstations, maar ook om te demonstreren of PCI Express een nuttige uitbreiding is voor toekomstige desktops, die over enkele jaren over dezelfde storage performance kunnen beschikken als de door ons geteste SCSI RAID-configuraties.
Testopstelling
De benchmarks werden uitgevoerd op een MSI K8D Master dual Opteron-moederbord met twee 32-bit 33MHz PCI-slots, drie 100MHz PCI-X-slots (verdeeld over twee bussen) en een 1,6GHz Opteron 242-processor. Er werd getest met een Mylex AcceleRAID 600 en een LSI Logic MegaRAID Elite 1600. De Elite 1600 is een oudgediende dual channel Ultra160 SCSI-adapter, die ondanks zijn leeftijd van drie jaar nog steeds zeer goede prestaties weet neer te zetten. De adapter heeft ondersteuning voor 64-bit 66MHz PCI en is gebaseerd op een 100MHz Intel i960RN I/O processor. De Mylex AcceleRAID 600 is een moderne dual channel Ultra320 SCSI RAID-adapter, die vooral opvalt door zijn hoge mate van integratie. De Xircon SCSI-controller en IBM PowerPC 405 I/O processor zijn op één chip geïntegreerd, zodat snellere communicatie tussen deze onderdelen mogelijk is. De MegaRAID Elite 1600 en AcceleRAID 600 waren beide voorzien van 128MB cachegeheugen, bij de MegaRAID van het type 100MHz SDRAM en bij de AcceleRAID met het smaakje 266MHz DDR SDRAM. De Mylex kan dankzij zijn snellere I/O processor en beter presterende cachegeheugen hogere transfer rates neerzetten dan de MegaRAID Elite 1600, welke is beperkt tot een transfer rate van circa 136MB/s bij gebruik van write-back caching en adaptive read ahead. Ondanks deze beperking hebben we toch gemeend dat de MegaRAID Elite 1600 een goede kandidaat is voor de tests. De I/O-prestaties zijn namelijk wel erg goed en dat is uiteindelijk wat telt.
De RAID-controllers werden gekoppeld aan vier Maxtor Atlas 15K 18,4GB Ultra320 SCSI-harde schijven met een toerental van 15.000 omwentelingen per minuut. Deze schijven kunnen een maximale sequentiële transfer rate van 75MB/s noteren.

MSI K8D Master met Mylex AcceleRAID 600 SCSI RAID-adapterOm de invloed van verschillende PCI-bussnelheden te meten werd de Mylex AcceleRAID 600 getest op 100MHz PCI-X en op een PCI-X-bus waarvan de kloksnelheid door plaatsing van een Promise FastTrak 100 werd gereduceerd tot 66MHz. De LSI MegaRAID Elite 1600 werd getest op 64-bit 66MHz PCI, 32-bit 33MHz PCI en 32-bit 33MHz PCI met extra belasting in de achtergrond. De extra belasting werd veroorzaakt door een IOMeter benchmark van de transfer rate op een Western Digital WD800JB-harde schijf, die was aangesloten op een Promise FastTrak 100. De FastTrak was naast de MegaRAID op de 32-bit 33MHz PCI-bus geplaatst. Hierdoor werd een continue busbelasting van 25MB/s (overhead niet meegeteld) gegenereerd.
De prestaties van de bovengenoemde PCI- en RAID-configuraties werden gemeten in ATTO Disk Benchmark, Winbench 99 v2.0 en de in eigen huis ontwikkelde StorageMark benchmarks. Deze benchmarks zijn ontwikkeld met behulp van Intel IPEAK Storage Performance Toolkit en zijn gebaseerd op toegangspatronen van real world desktop en workstation applicaties. Nieuw in deze review zijn IPEAK SPT webserver- en database-server benchmarks, die de IOMeter webserver-benchmarks zullen vervangen. De door IOMeter gegenereerde toegangspatronen zijn naar onze mening te synthetisch om representatief te zijn voor real world performance. Daarom hebben we onze eigen benchmarks gecreeërd op een gesimuleerde Apache en MySQL-server. De desktopbenchmarks werden uitgevoerd in RAID 0 terwijl de serverbenchmarks in RAID 5 werden gedraaid. In beide gevallen werden vier schijven gebruikt.
Low-level performance
Desktopprestaties
Voor dit artikel werd gebruik gemaakt van een subset van de desktopbenchmarks die in de
Serverprestaties
Teneinde een betere voorstelling van zaken te geven dan mogelijk is met
Conclusie
De benchmarks op de voorgaande pagina's bewijzen dat de beperkte bandbreedte van de 32-bit 33MHz legacy PCI-bus een reëele bottleneck vormt voor zware RAID-systemen. Een relatief oude dual channel Ultra160 SCSI RAID-adapter moest in een RAID 0-configuratie van vier 15.000rpm harde schijven onder desktop workloads gemiddeld 32 procent aan I/O performance inleveren. Wie zijn PCI-bus daarnaast ook wil belasten met de activiteiten van andere bandbreedte-vretende PCI-devices zoals videokaarten, video-editing kaarten en multi-channel geluidskaarten kan rekenen op een verlies dat snel richting de 45 procent kan kruipen. De verschillen in de serverbenchmarks zijn kleiner maar dat is ten dele het gevolg van het gebruik van RAID 5 in plaats van RAID 0.
Tweakers die graag een dikke RAID array op hun bord willen hebben, doen er verstandig aan om het geheel te garneren met een moederbord dat is voorzien van een snelle 64-bit PCI-bus. Naast een hogere PCI-bandbreedte bieden de moederborden met 64-bit PCI als niet gering voordeel de mogelijkheid om gebruik te maken van gescheiden PCI-bussen, waardoor conflicten tussen bijvoorbeeld een geluidskaart en een RAID-controller tot het verleden kunnen behoren. Helaas is 64-bit PCI enkel te vinden op high-end workstationmobo's met een prijskaartje vanaf 450 euro. De goedkoopste oplossing voor een hoge busbandbreedte is een dual Athlon-moederbord gebaseerd op de AMD en MSI, die respectievelijk de Opteron-processors en het K8D Master dual Opteron-moederbord beschikbaar stelden. Dankzij Mecallie en de Area 61 aanhang is dit artikel inmiddels ook beschikbaar in een