Slö 3xWDC Green 2TB diskar i Raid5

Permalänk
Medlem

Slö 3xWDC Green 2TB diskar i Raid5

Tja!

Nu har jag krabbat med min array länge nog och börjar lessna på sk*ten. Jag får helt enkelt inte någon bra performance... Kanske kan någon här komma med lite värdefull input?

Server:
Ubuntu 10.10 32bit
P4 2.8 Ghz
1.5 gb ram
2x120 GB 7200 rpm IDE-diskar i Raid1

Diskarna som ska vara i arrayen är som sagt Western Digital Corporation, 2 TB Green. Använder mdadm, mjukvaruraid i linux.

Diskarna har 4k blocks och verkar vara rejält tjuriga på att detta efterföljs. Börjar man en partition på sektor 63 så går det betydligt segare än om man börjar "rätt", dvs på sektor 64.

Hastighetstest till hela disken:

Citat:

root@gandalf2:~# dd if=/dev/zero of=/dev/sdb
384233+0 records in
384233+0 records out
196727296 bytes (197 MB) copied, 10.5523 s, 18.6 MB/s

Samma fenomen händer givetvis på alla diskar, men för att minska textmassan i inlägget så visar jag bara en av diskarna.

Börjar jag en partition på första sektorn så händer följande:

Citat:

Device Boot Start End Blocks Id System
/dev/sdb1 1 243201 1953512001 83 Linux

root@gandalf2:~# dd if=/dev/zero of=/dev/sdb1
156005+0 records in
156005+0 records out
79874560 bytes (80 MB) copied, 10.4876 s, 7.6 MB/s

Imponerande va?
Gör jag istället "rätt" och börjar på sektor 64 och slutar på en sektor på jämnt nummer så händer det underverk. I detta test har jag även gjort en mindre partition i slutet av disken för att se hur hastighten är där. Vissa WDC Green verkar tappa rejält med kraft där nämligen, men i mitt fall är det samma resultat på alla diskar (vilket jag hoppas är bra..).

Citat:

/dev/sdb1 64 240000 1927293952+ 83 Linux
/dev/sdb2 240020 243200 25551382+ 83 Linux

root@gandalf2:~# dd if=/dev/zero of=/dev/sdb1
1890655+0 records in
1890655+0 records out
968015360 bytes (968 MB) copied, 11.4574 s, 84.5 MB/s

root@gandalf2:~# dd if=/dev/zero of=/dev/sdb2
1520900+0 records in
1520900+0 records out
778700800 bytes (779 MB) copied, 15.2415 s, 51.1 MB/s

50-85 MB/s över hela disken anser jag vara helt ok. Börjar då bygga min array:

Citat:

/dev/sdb1 64 243200 1952997952+ fd Linux raid autodetect
/dev/sdc1 64 243200 1952997952+ fd Linux raid autodetect
/dev/sdd1 64 243200 1952997952+ fd Linux raid autodetect

mdadm --create /dev/md1 --level=5 --raid-devices=3 --spare-devices=0 /dev/sdb1 /dev/sdc1 /dev/sdd1

~8 timmar senare är arrayen rebuildad och klar.
Skapar ext2 filsystem med 4k blocks på hela arrayen och testar hastigheten.

Citat:

Skriva fil:
root@Gandalf:/mnt# dd if=/dev/zero of=/mnt/gandalf/testfile
^C1498880+0 records in
1498879+0 records out
767426048 bytes (767 MB) copied, 20.8955 s, 36.7 MB/s

Läsa fil:
root@Gandalf:/mnt# dd if=/mnt/gandalf/testfile of=/dev/null
1498879+0 records in
1498879+0 records out
767426048 bytes (767 MB) copied, 3.29322 s, 233 MB/s

233 MB/s läshastighet är ju helt klart acceptabelt i min mening. Men varför i jävla helvete får jag inte mer än ynka 35 MB/s när jag skriver till filsystemet?
Hjälp bitte

Permalänk
Hedersmedlem

4K-sektorproblemen är inget nytt och kommer gälla alla tillverkare och modeller efterhand som de går över till det.

Jag har aldrig kört mjukvaru-RAID på en gammal P4a (du nämner inget kort som sköter XOR-beräkningarna vad jag kan se) och där kan kanske en stor flaskhals finnas. Det som tyder på det är väl att Read är ok medan write är värdelös. CPUn hinner väl inte med att beräkna pariteten snabbare.

Jag är inget RAID-expert, så andra förklaringar kan säkert finnas.

Sedan är väl de nyare Green med 4K-sektorer tämligen olämpliga till RAID iom att TLER inte kan slås på. Därför finns det RAID-modeller av Green (har sådana själv).

Visa signatur

W10, Intel 5820K, Asus X99-S, Crucial DDR4 2133MHz 32GB, Sapphire 290X Tri-X, Intel 730 SSD, WD Black+Green+HGST, Silverstone FT02, Corsair AX1200, Corsair K90, Logitech MX518, Eizo 2736w, Eaton 5115 UPS. Pixel 7 pro

Permalänk
Medlem

Mja, har också tänkt på cpu'n som flaskhals. Men även när jag stressar arrayn duktigt så ser inte hårdvaran ut att jobba så hårt. Så jag tror inte att det är problemet. Det har nog snarare med 4k-sektorerna att göra tror jag. Kom precis att tänka på chunk sizes, jag kör 64k just nu. Kanske kan det göra skillnad att gå ned till 4k istället? Jag får rebuilda min array åter igen och se om det kan tänkas göra någon skillnad.

Har också läst det om TLER, men jag vet inte vad jag ska tro. Har läst om folk som haft stora problem med detta. Samtidigt har jag ett par polare som har kört dessa diskar ett tag utan bekymmer. Så kanske är det inte lika "farligt" med de nya diskarna som det var med de äldre?...

Permalänk
Medlem

Har du kollar cpu belastningen vid skrivningar. Sedan skriver du ju en bit i taget på det där viset. Om du använde #dd if=/dev/zero of=/dev/=/mnt/gandalf/testfile bs=1M, då skriver den större mängder åt gången.
du kan ännu lägga till count=5 så skriver den ner 5 st 1MB till den plats du specificerar.

Permalänk
Medlem
Skrivet av warzo:

Har du kollar cpu belastningen vid skrivningar. Sedan skriver du ju en bit i taget på det där viset. Om du använde #dd if=/dev/zero of=/dev/=/mnt/gandalf/testfile bs=1M, då skriver den större mängder åt gången.
du kan ännu lägga till count=5 så skriver den ner 5 st 1MB till den plats du specificerar.

Hur jag kollar belastningen? Eller menar du om jag har kollat?
På A svarar jag "top" och på B svarar jag ja
Men du har helt klart en poäng med hur stor datamängd man skriver. Men frågan är vad som är mest rättvist egentligen.
Skriver jag 1M 5 ggr så fick jag just nu 200MB/s. Men skriver jag 1M 1000 ggr så sjönk det till 30 MB/s.
Ska väl tilläggas att jag gör en rebuild med 4k chunks just nu också, så värderna blir ju fel. Men än så länge verkar det som att jag får bättre speed nu med 4k chunks, men det är ju svårt att säga under rebuilden. Rebuilden ska vara klar runt 23 ikväll, så jag får testa mer då!
Annars börjar jag bli lite sugen på Raid10 istället. Då får jag ju både bättre hastighet och mer felsäkerhet. Men smålänningen i mig är väldigt anti Raid10

Permalänk
Medlem

Jag provade själv köra med bs=1M och count=10 på min server som har en 2,5" 5,4krpm skiva, och den fick 194MB/s, vilket inte stämmer. Och det har med chache att göra i linux. Så man måste skapa en så stor mängd data att skriva så att det inte ryms in i minnet.

Det är ju möjligt också att sätta bs=100M .. det går ganska fritt att leka =D