Ich habe ein mdadm RAID-6 auf meinem Heimserver mit 5x1 TB WD Green HDDs. Die Lesegeschwindigkeit ist mehr als ausreichend - 268 Mb / s in dd. Die Schreibgeschwindigkeit beträgt jedoch nur 37,1 Mbit / s. (Beide wurden über dd in einer 48-GB-Datei getestet, die RAM-Größe beträgt 1 GB, die beim Testen verwendete Blockgröße 8 KB.)
Könnten Sie bitte vorschlagen, warum die Schreibgeschwindigkeit so niedrig ist und ob es Möglichkeiten gibt, sie zu verbessern? Die CPU-Auslastung während des Schreibens beträgt nur 25% (dh die Hälfte von 1 Kern von Opteron 165). Keine geschäftskritischen Daten dort und der Server ist UPS-gesichert.
mdstat ist:
Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sda1[0] sdd1[4] sde1[3] sdf1[2] sdb1[1]
2929683456 blocks super 1.2 level 6, 1024k chunk, algorithm 2 [5/5] [UUUUU]
bitmap: 0/8 pages [0KB], 65536KB chunk
unused devices: <none>
Irgendwelche Vorschläge?
Dinge wie Rückschreiben, Barriere, Nobh haben nicht geholfen. DD-Blockgröße = 1M, 8M hat nichts geändert. Es sieht so aus, als würde mdadm Sektoren physisch lesen, um die Parität zu berechnen, auch wenn es keine Rolle spielt ... Ist das richtig?
Update: Die Geschwindigkeitsverschlechterung nach geändertem Stripe-Cache war tatsächlich darauf zurückzuführen, dass 1 Festplatte beim Testen wahrscheinlich ausgefallen ist. Schön :-D
Behoben: Nach dem Erhöhen des Stripe-Cache und dem Umschalten auf eine externe Bitmap beträgt meine Geschwindigkeit 160 Mbit / s Schreibvorgänge und 260 Mbit / s Lesevorgänge. :-D
Antworten:
Haben Sie versucht, / sys / block / mdX / md / stripe_cache_size zu optimieren?
Laut diesem Forumsbeitrag (auf Norwegisch, sorry) "ist die Optimierung dieses Parameters umso wichtiger, je mehr Festplatten und je schneller Ihr System ist":
Zum Vergleich seine Geschwindigkeit zitieren:
Mein Heimserver hat mit RAID 5 fast die gleichen Festplatten wie Sie:
Es sieht also so aus, als ob die sequentielle Schreibleistung etwa 50% der Leseleistung beträgt.
Welche Leistung zu erwarten ist, sagt das Linux Raid Wiki über RAID 5:
Und zu RAID 6:
quelle
Versuchen
echo 32768 > /sys/block/md0/md/stripe_cache_size
und prüfe ;)
quelle