[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: RAID5 Performance + mdinfo.sh bashscript



Am Freitag, 24. August 2012 schrieb Robert Bude:
> Hallo Leute ! 

Hallo Robert,
 
> Ich hab in meinem PC ein raid5 mit 4 2tb Platten.
> Habe aber im Vergleich zu einem Freund vergleichsweise schlechte Lese
> und Schreib performance. Da ich bei Ihm die Werte nicht selbst
> verifizieren kann und somit nicht wirklich weiss ob meine Werte schlecht
> sind wollt ich Euch mal "anhauen". 

Oho! Weißt Du nun, ob das RAID-5 des Freundes schneller ist oder geht ihr da einfach so nach Gefühl?

> Um es mal zu vereinfachen hab ich
> ein Script geschrieben, welches über den angemeldeten Arrays (mdadm
> arrays) mal alle Infos zusammenträgt. Vielleicht kann das ja mal jemand
> bei sich ausführen und gegebenfalls seine Ergebnisse hier posten. Ich
> hab extra infos übers filesystem, die eingehangenen platten usw mit
> abgefragt. Denke mal das man da jetzt alles zum analysieren zur
> verfügung hat. Hoffe das Ihr mir weiterhelfen könnt. 

Nein, das ist mit großer Wahrscheinlichkeit nicht alles. Denn es liefert mir nur eine Aussage über die sequentielle Lese- und Schreib-Performance mit 1 MiB großen Blöcken. Ist das wirklich der geplante Workload für das Array? Große Dateien in 1 MiB-Blöcken lesen und schreiben? Ich frage, denn so ein Workload ist abseits von Video-Streaming ziemlich selten…

In Bezug auf typische Workloads mit zufälligen Zugriffen auf viele kleine und mittelgroße Dateien sagt dieser Wert so gut wie nichts aus.

Zudem ist es nur eine Einzelmessung. Hast Du mehrfach wiederholt und auf Abweichungen überprüft?

> Das Script auf
> pastebin: http://pastebin.com/Awqn5f0B [1] 
> 
> Mein Ergebnis auf pastebin:
> http://pastebin.com/uSNkTiB4 [2] 

Die Chunksize des RAIDs ist 64 KiB - Standard ab mdadm glaub 3.1 ist 512 KiB, 512 KiB ist vor allem bei großen Dateien sinnvoll. Ich weiß jetzt nicht, ob tune2fs die RAID stide und RAID stripe width in Blöcken oder in KiB ausgibt. Wenn die Angaben in KiB sind, dann scheinen sie zu stimmen. Falls in Blöcken,dann sind sie falsch. Ich hätte eigentlich gedacht in Blöcken, da ich sie bei mkfs.ext3/4 bislang auch in Blöcken angegeben hab. Kann mich aber irren. In Blöcken müssten die Werte halt viermal kleiner sein (4KiB Blöcke). Hast Du da was angepasst oder war das „automagisch“ schon so? (mkfs.ext3/4 erkennen die Werte bei SoftRAID glaub mittlerweile wie mkfs.xfs auch, wenn kein LVM dazwischen liegt.)

RAID stride ist die Chunksize des RAIDs. RAID stripe width ist die RAID stride mal der Anzahl der Datenplatten, das dürften bei Dir 3 sein, da Du keine Spare zu verwenden scheinst.

Die SMART-Daten sind in aller Regel irrelevant, es sei denn, eine Platte hat schon einen Treffer. hdparm -I dürfte einen besseren Überblick über die Fähigkeiten der Platte geben. Insbesondere Native Command Queing wäre interessant. Interessant bei Smartmontools ist die Ausgabe:

| ==> WARNING: Using smartmontools or hdparm with this
| drive may result in data loss due to a firmware bug.

Das habe so bei smartctl -a noch nicht gesehen.

Es handelt sich um ein Ext4-Dateisystem (Extents). Das ist schonmal gut, wenn Du mit einer 20 GiB großen Datei testest.

> Ganz unten seht ihr die Ergebnisse.
> Lesen:141mb/s schreiben 66mb/s  

Nuja, RAID-5 halt. Schreiben ist deutlich langsamer als Lesen. Da die Checksummen über alle Platten verteilt sind, muss RAID-5 diese beim Lesen überspringen. Bei 64 KiB Chunksize müsste das, wenn ich mich jetzt nicht verrechnet habe, alle 256 KiB erforderlich sein. 

> für 4x hd204ui (ehemals samsung F4)
> irgendwie nicht so berauschend. CPU ist ausreichend. 4core cpu mit 3ghz
> 8gb ddr3ram 

CPU nachgeprüft? Sollte wirklich kein Problem sein, aber hast Du mal nach der CPU-Auslastung geschaut?

Hast Du vor der Messung sichergestellt, dass kein Recovery läuft?

Hast Du vor der Messung sichergestellt, dass keine anderen Anwendungen auf dem RAID rumbasteln?

> Ich würd mich über Vergleichsergebnisse
> freuen.

Damit kann ich nun nicht dienen. Ich habe kein RAID-5 und will auch keines:

Battle Against Any Raid Five, http://www.baarf.com/

Ich empfehle vor allem

http://www.miracleas.com/BAARF/RAID5_versus_RAID10.txt

durchzulesen und zu verstehen. Einiges ist vielleicht so nicht mehr aktuell, inwiefern SATA-Laufwerke korrigierbare Fehler zuverlässig (!) melden, weiß ich nicht, könnte

196 Reallocated_Event_Count 0x0032   252   252   000    Old_age   Always       -       0

sein.

Und dann erwäge, ob Du, vor allem, wenn Du schnellere Schreibgeschwindigkeit wünschst, Dich lieber mit etwas weniger freien Speicherplatz zufrieden gibst und RAID 10 verwendest ;).

Auch wenn das RAID selbst dann kein Backup ersetzt ;).

Nun, selbst wenn ich ein RAID-5 hätte: Wahrscheinlich andere Hardware, wahrscheinlich andere Platten, vielleicht auch andere Anzahl von Platten, vielleicht anderes Dateisystem, andere Chunksize, andere Kernel-Version usw. => andere Werte.

Vom Bauchgefühl erscheinen mir Deine Werte jetzt nicht so ungewöhnlich.

Es kommt aber auch drauf an, wo Ext4 die Test-Datei auf die Platte legt. Die Western Digital Green 1,5 TB Platten in meiner Workstation auf der Arbeit – RAID-1 ;) – lesen am Anfang, von der Sektornummerierung her gesehen, ca. 90-100 MiB/s und am Ende ca. 40-50 MiB/s.

Es könnte also sinnvoll sein, mal zwei RAID-5 aufzusetzen. Eines in den ersten 50 GiB und eines in den letzten 50 GiB. Und dann zu vergleichen… Dann könntest Du die Daten zumindest in Schnell- und Langsam-Daten aufteilen.

> Links:
> ------
> [1] http://pastebin.com/Awqn5f0B
> [2]
> http://pastebin.com/uSNkTiB4

Ciao,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7


Reply to: