Ich habe ein System mit DualIntel E5-2620 v3 @ 2,40 GHz, 64 GB RAM, einLSI 3008 HBA, 8-fach1,6 TB Intel S3510 SSDs. Ich habe es in verschiedenen Konfigurationen mit Fio getestet und einige interessante Ergebnisse erzielt. Beim Benchmarking jeder einzelnen Raw-Disk sehe ich ~450 MB/s zufällige Schreibvorgänge pro Gerät. In einem RAID0 (Stripe ohne Parität) sehe ich~3.500 MB/sZufällige Schreibvorgänge – grundsätzlich 450 * 8 Festplatten.
Als ich jedoch RAID 5 ausprobierte, brach die Leistung komplett ein. Mir ist klar, dass raid5 deutlich schlechter sein sollte als raid0, aber die RAID5-Leistung lag bei demselben Test bei etwa50 MB/s. Ich habe RAID 5 schon einmal verwendet und obwohl die Leistung nie großartig war, habe ich noch nie eine 99%ige Einbuße dafür erlebt. Der Fio-Test, den ich durchführe, hat 600 Threads, die zufällige Daten in 512-Kilobyte-Blöcken schreiben. Das Dateisystem auf dem Gerät ist für alle diese Tests xfs.
Die Einstellung /sys/block/md0/md/stripe_cache_size
auf 32768 (den maximal möglichen Wert) erhöhte den Gesamtdurchsatz auf~130 MB/s, was mich zu der Annahme veranlasst, dass das Problem das Fehlen eines Writeback-Caches ist, wie er in Hardware-RAID-Controllern zu finden ist. Aber ich frage mich, ob ich irgendetwas tun kann, um die Leistung von mdadm raid 5 zu verbessern. Irgendeine Idee, was die Ursache dafür sein könnte oder wie man die Leistung von raid 5 verbessern kann?
Interessanterweise habe ich auch ein RAID-10 mit 16 Festplatten ausprobiert (dieselben Festplatten plus ein zweiter LSI HBA) und die Leistung lag bei ~2400 MB/s – eine 33 %ige Verringerung gegenüber RAID 0. Angesichts der Funktionsweise von RAID 10 hätte ich eine nahezu identische Leistung wie bei RAID 0 erwartet.
Für alle, die es interessiert, hier ist die Fio-Konfigurationsdatei:
[global]
rw=randwrite
direct=1
numjobs=600
group_reporting
bs=512k
runtime=120
ramp_time=5
size=10G
[raid]
new_group
directory=/raid/