Skrivet av Sears:
Ja, men om man ska läsa flera hundra megabyte så borde la kontrollern kunna dela upp sysslan mellan diskarna? Be dem att läsa 200MB var, för ett sammanlagt 400MB.
Den enda vettiga förklaringen till varför sekventiella läsningar inte ger mer prestanda har kommit från Niko, som tror att det är kontrollern som flaskhalsar.
Som jag säger, du ser på din egen 4k läsning att den gör denna uppdelning du pratar om och får 198% av prestandan från single disk. Och en kontroller vet inget om 200MB där och 400MB där, den vet endast instruktioner att hämta en viss LBA adress. Så om du ber den läsa 400MB så kommer den läsa 400MB en LBA efter en annan, och även om 50% av dem hamnar på vars en disk så vet inte kontrollern var spåren eller datan finns på disken.
Det är först när du ber den hämta 400MB till på en annat ställe samtidigt, då ska den kunna be ena disken att göra ena jobbet och andra disken att göra andra, då den kan ge 2 olika jobb till diskarna, och HÄR kan mycket väl en bättre RAID kontroller göra skillnad i hur bra den gör allt.
Det hela handlar om vad du ger den för instruktion, på OS nivå till drivrutin. OSet kommer medvetet försöka lägga sig på ködjup 1 vid en enkel kopiering och den säger inte till disken "läs 400MB", utan den säger "läs denna LBA adress", för den vet att hårddiskar normalt tappar mycket prestanda om den får för mycket på en gång, även om det i ditt fall blir sämre prestanda än du teoretiskt kan få. Bla NCQ teknik idag gör att disken kan hantera mer slumpmässigt och därför kan du få flera små access begäran, och då lite högre ködjup när du har flera filer och Windows försöker då hålla sig runt ködjup 2-3 för att NCQ ska kunna göra nytta, och då lär du märka högre prestanda på RAID 1 också i läsning.
Om du läser ett sekventiellt LBA segment, med bara en instruktion, på en HDD så läser den på samma spår, sektor efter sektor och det som "hindrar" det från att gå snabbare är hur fort skivorna med data kan fara förbi läshuvudet. Därför kan du tex läsa snabbare i början på disken, som är i utkanten på skivorna än i slutet på disken längst in. Detta är en teknisk begränsning på hur en HDD fungerar och oavsett vilken RAID, vilken kontroller eller vilken dator du sätter det i, så är detta samma begränsning.
Så även om du ber ena disken att hämta varannan sektor så kommer båda diskarna att vänta på samma snurrande skiva, då samma info ligger på exakt samma adress på diskarna i RAID1. Ev kan spårändringar ske snabbare när ena disken läser och den andra då kan byta till nästa spår tidigare och därför får du lite (nån %-del) mer prestanda som du gör i dina värden också.
Din kontroller må kanske ha en flaskhals, men jag sitter själv på Z87, och det är inga problem att punga ut 80k+ IOPS och över 1GB/s från den. Inga alls... om den kan läsa optimalt från enheter utan latens (riktigt låg, som SSD tex). AMD styrkort har inte samma IOPS möjlighet men inte så låga att de har problem med 2 ynkliga HDD. Däremot kan den får "problem" med flera SSDer.
Vill du skita i vad jag säger så gör det, du bestämmer själv. Köp en dyr kontroller och bevisa mig fel. Men då får du gärna också säga "att det gjorde ingen nytta" i tråden sen också, så att nästa person efter som jag kan länka tråden till, kan lära sig direkt. Och har jag fel så tryck upp det i trynet på mig, då jag får se det med egen ögon. (Erkänner gärna om jag har fel)
Eller så skaffar du 2st SSDer istället, och får både bättre prestanda, bättre IOPS och slipper HDDns rotations latens (även i RAID1)
Notera här att jag inte säger att hårdvaru-kontrollers är "skit", för det finns nytta med dem och de är bättre, utan vad jag säger är att för 2st 7200 RPM HDD, så är inte flaskhalsen i kontrollern, utan i HDD skivornas rotations latens. (En anledningen till varför man kört 10k och 15k RPM diskar när man kör prestanda RAID förr).