De performance van RAID0 is zeker
meetbaar. Dat betekent nog niet dat het
merkbaar zal zijn. RAID0 verhoogt enkel de bandbreedte van de harde schijf en dat is het aantal MB dat een harde schijf iedere seconde kan versassen. De bandbreedte is echter niet het enige performance-aspect van een harde schijf: er is ook nog zoiets als de latency.
Vóór er effectief data gelezen kan worden, moet de leeskop zich over het begin van de datablok bevinden. De leeskop beweegt zelf over de straal van de cirkel (van de buitenrand van de schijf naar het middelpunt ervan). Om zich over de juiste plek van de schijf te plaatsen, moet de schijf eerst zó ver gedraaid zijn dat het begin van de datablok zich onder die straal bevindt en moet de leeskop zich over de straal bewogen hebben tot op de juiste afstand. De tijd die deze bewegingen duren noemen we de "latency". Deze latency wordt gemeten in ms (= "milliseconden") en is afhankelijk van de snelheid waarmee de schijf draait (= "rotational latency") en de snelheid waarmee de leeskop zelf beweegt (= "seek time").
Eens de leeskop zich op de juiste plek bevindt, wordt de data uitgelezen doorde schijf verder te laten draaien onder de leeskop. We meten de snelheid waaraan data dan gelezen wordt in MB/s en noemen dit de bandbreedte. Deze bandbreedte is afhankelijk van de snelheid waarmee de schijf draait en de datadichtheid op de schijf.
Uit deze uitleg, moet het duidelijk zijn dat de latency belangrijker is naarmate je veel verschillende datablokken wil lezen die niet allemaal achter elkaar staan. De bandbreedte weegt dan weer meer door wanneer je grote blokken opeenvolgende data wil lezen.
Bij klassiek desktop-gebruik (Windows starten en games/apps) wordt er met veel kleine files gewerkt. Dat betekent dat de latency sterker zal doorwegen dan de bandbreedte. Komt daar nog bij dat heel veel desktopsystemen niet of slecht (in het geval je de Windows defrag-tool gebruikt bijvoorbeeld) gedefragmenteerd zijn: dat zorgt ervoor dat 1 file dan verdeeld wordt over verschillende datablokken op het schijfoppervlak. Om de hele file te lezen krijg je dus meermaals te maken met de latency.
Om het in cijfers uit te drukken: stel dat je een schijf hebt die 50 MB/s bandbreedte haalt en een latency van 10ms heeft. In dat geval duurt het lezen van 1000 datablokken van 128 KB:
Code:
1000 x (10ms + 128 KB / 50 MB/s) = 12,5s
Verhoog je nu de bandbreedte van de schijf 2x (zoals RAID0 in theorie maximaal kan halen), dan kom je op het volgende:
Code:
1000 x (10ms + 128 KB / 100 MB/s) = 11,25s
Dat is een verbetering van zo'n 10%... Niet slecht.
Stel nu dat je de latency zou kunnen verlagen naar 6ms, dan kom je op het volgende uit (zonder RAID0):
Code:
1000 x (6ms + 128 KB / 50 MB/s) = 8,5s
In dit geval win je dus zo'n 32% snelheidswinst!
Zoals Exit hogerop al aanhaalde houdt RAID0 in dat het ene datablok op één schijf wordt gezet en het volgende op de andere schijf. De performance-winst haal je dan uit het feit dat beide schijven tegelijk aan eenzelfde leesopdracht werken. De latency van beide schijven blijft bestaan ("het duurt bij iedere schijf zo'n 10ms eer die begint de data te lezen"). Vanaf dan moet iedere schijf slechts de helft van de datablokken lezen als zonder RAID0, wat verklaart waarom de bandbreedte verdubbelt (in theorie althans; in de praktijk haal je zo'n 80% efficiëntie uit RAID0).
De latency verlagen is niet zo eenvoudig. De makkelijkste oplossing is de rotatiesnelheid verhogen. De meeste consumentenschijven draaien aan 7200rpm tegenwoordig. Hoe hoger de snelheid, hoe krachtiger de aandrijfmotor moet zijn, hoe sneller de onderdelen kunnen slijten en vooral hoe sneller de overige onderdelen moeten zijn (je hebt er niets aan dat je schijf 2x zo snel draait wanneer de leeskop zó traag beweegt dat het datablok weer voorbijging vóór je kon beginnen lezen). De enige consumentenschijf met hogere rotatiesnelheid is de
WD Raptor (schijf draait aan 10000rpm).
Een tweede mogelijkheid om de latency te verlagen is een snellere leeskop gebruiken. Dat is echter iets wat je niet snel uit de specs kan achterhalen. Gewoonlijk is de snelheid daarvan gewoon afgestemd op de rotatiesnelheid: de bedoeling is voornamelijk dat de leeskop niet voor extra vertraging zorgt (zoals ik hoger uitgelegd heb).
Uiteindelijk kan je zeggen dat RAID0 enkel performance zal verhogen wanneer je veel grote files bewerkt (films
encoderen, films bewerken, grote ZIP/RAR files extracten) op een gedefragmenteerde schijf.