GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erhöht RAID1 die Leistung mit Linux mdadm?

Ja, die Linux-Implementierung von RAID1 beschleunigt Festplatten-Lesevorgänge um den Faktor zwei, solange zwei separate Festplatten-Lesevorgänge gleichzeitig ausgeführt werden . Das bedeutet, dass das Lesen einer 10-GB-Datei auf RAID1 nicht schneller ist als auf einer einzelnen Festplatte, aber das Lesen von zwei verschiedenen 10-GB-Dateien* wird schneller sein.

Um es zu demonstrieren, lesen Sie einfach einige Daten mit dd . Bevor Sie irgendetwas tun, löschen Sie den Festplatten-Lese-Cache mit sync && echo 3 > /proc/sys/vm/drop_caches . Sonst hdparm wird superschnelle Lesevorgänge beanspruchen.

Einzelne Datei:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 65,9659 s, 159 MB/s

Zwei Dateien:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT skip=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 64,9794 s, 161 MB/s
10485760000 bytes (10 GB) copied, 68,6484 s, 153 MB/s

Das Lesen von 10 GB Daten dauerte 65 Sekunden, wohingegen das Lesen von 10 GB + 10 GB =20 GB Daten insgesamt 68,7 Sekunden dauerte, was bedeutet, dass mehrere Festplattenlesevorgänge stark von RAID1 profitieren auf Linux. skip=$COUNT Teil ist sehr wichtig. Der zweite Prozess liest 10 GB Daten aus dem 10 GB-Offset.

Jareds Antwort und sshs Kommentare, die sich auf http://www.unicom.com/node/459 beziehen, sind falsch. Der Benchmark von dort beweist, dass Festplattenlesevorgänge nicht von RAID1 profitieren. Der Test wurde jedoch mit dem Benchmarking-Tool bonnie++ durchgeführt, das nicht zwei separate Lesevorgänge gleichzeitig durchführt. Der Autor weist ausdrücklich darauf hin, dass bonnie++ nicht zum Benchmarking von RAID-Arrays geeignet ist (siehe Readme).


Ja, Sie erhalten einen Leseleistungsschub + die Redundanz. Sie können sich das leicht vorstellen, da Sie die Teile der Dateien gleichzeitig von zwei verschiedenen Festplatten lesen können, da sich die Dateien auf beiden Festplatten befinden.

Wenn der RAID-Controller seine Arbeit richtig macht, könnten Sie also theoretisch eine Beschleunigung von O(n) erreichen.


  • man 4 md heißt es:"… Beachten Sie, dass der vom Treiber durchgeführte Leseausgleich das Leistungsprofil von RAID1 nicht mit dem von RAID0 identisch macht; ein einzelner Eingabestrom wird nicht beschleunigt (z. B. ein einzelnes dd), aber Mehrere sequenzielle Streams oder eine zufällige Arbeitslast verwenden mehr als eine Spindel. Theoretisch , mit einem N-Datenträger-RAID1 können N sequenzielle Threads von allen Datenträgern lesen. …"

  • Um das Ganze abzurunden – in der Praxis , basierend auf iostat Ausgabe bei einem typischen Software-RAID-Setup mit 2 Festplatten beobachtet wird, gibt es keinen Ausgleich . Tatsächlich sieht es effektiv wie mdadm aus 's Option --write-mostly ist immer an.


Linux
  1. Verbessern Sie die Linux-Systemleistung mit noatime

  2. JQ-Befehl in Linux mit Beispielen

  3. Linux – Wie kann man Maxsymlinks erhöhen?

  4. So erhöhen Sie die Aufbewahrung von „sar“-Daten auf „N“ Tage in Linux

  5. Wie geht Linux mit Shell-Skripten um?

wc Linux-Befehl mit Beispielen

So überwachen Sie die Leistung von Linux-Systemen mit dem Befehl iostat

Linux-IP-Befehl mit Beispielen

15 Linux-PS-Befehl mit Beispielen

Analysieren der Linux-Serverleistung mit atop

Beheben und überwachen Sie die Linux-Systemleistung mit nmon