Erläuterung:
Wir haben einen Server:
- Modell: HP ProLiant DL160 G6
- 4 x 240 GB SSD (RAID-10)
- 72 GB DDR3-RAM
- 2 x L5639
- HP P410 RAID-Controller (256 MB, V6.40, Rom-Version: 8.40.41.00)
SSD-Laufwerke sind 4 brandneue 2,5 "Intel 530 mit 540 MB / s Lesegeschwindigkeit und 490 MB / s Schreibgeschwindigkeit
- CentOS 6
- Dateisysteme sind ext4
Dies ist jedoch das Testergebnis für die Lesegeschwindigkeit bei Raid 10:
hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 824 MB in 3.00 seconds = 274.50 MB/sec
[root@localhost ~]# hdparm -t /dev/mapper/vg_localhost-lv_root
/dev/mapper/vg_localhost-lv_root:
Timing buffered disk reads: 800 MB in 3.01 seconds = 266.19 MB/sec
und dies ist für die Schreibgeschwindigkeit:
dd bs=1M count=512 if=/dev/zero of=test conv=fdatasync
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 4.91077 s, 109 MB/s
Wir hatten auf eine Lesegeschwindigkeit von 1 GB mit RAID 10 gehofft, aber 270 MB sind nicht einmal die Geschwindigkeit einer einzelnen Festplatte!
Fragen:
- Warum ist es so langsam?
- Liegt es am RAID-Controller?
Update 1 - Gleiche Lese- / Schreibgeschwindigkeit:
Nachdem ich einige Einstellungen wie in den Antworten erwähnt geändert habe, habe ich das folgende Ergebnis:
(Weiß jemand, warum es 4 GB statt 400 MB als Lesegeschwindigkeit anzeigt?!)
BEARBEITEN: Es sieht so aus, als ob der Befehl falsch war und wir hätten -s144g für diese RAM-Menge verwenden sollen. Deshalb werden 4 GB angezeigt (wie in den Kommentaren von ewwhite vorgeschlagen).
[root@192 ~]# iozone -t1 -i0 -i1 -i2 -r1m -s56g
Iozone: Performance Test of File I/O
Version $Revision: 3.408 $
Compiled for 64 bit mode.
Build: linux
Record Size 1024 KB
File size set to 58720256 KB
Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s56g
Output is in Kbytes/sec
Each process writes a 58720256 Kbyte file in 1024 Kbyte records
Children see throughput for 1 initial writers = 135331.80 KB/sec
Children see throughput for 1 rewriters = 124085.66 KB/sec
Children see throughput for 1 readers = 4732046.50 KB/sec
Children see throughput for 1 re-readers = 4741508.00 KB/sec
Children see throughput for 1 random readers = 4590884.50 KB/sec
Children see throughput for 1 random writers = 124082.41 KB/sec
aber der alte hdparm -t /dev/sda
Befehl zeigt immer noch:
Timing gepufferte Festplattenlesevorgänge: 810 MB in 3,00 Sekunden = 269,85 MB / s
Update 2 (Tuned-Utils-Paket) - Die Lesegeschwindigkeit beträgt jetzt 600 MB / s:
Schließlich einige Hoffnung, wir hatten den Cache vom RAID-Controller deaktiviert und einige andere Dinge früher ohne Glück getan, aber da wir den Server neu geladen und das Betriebssystem erneut installiert haben, haben wir vergessen, "Tuned-Utils" zu installieren, wie in der Antwort von ewwhite vorgeschlagen (Danke ewwhite für dieses tolle Paket, das du vorgeschlagen hast)
Nach der Installation tuned-utils
und Auswahl des enterprise-storage
Profils beträgt die Lesegeschwindigkeit jetzt ~ 600 MB / s +, aber die Schreibgeschwindigkeit ist immer noch sehr langsam (~ 160 MB) (:
Hier ist das Ergebnis für den iozone -t1 -i0 -i1 -i2 -r1m -s144g
Befehl:
Children see throughput for 1 initial writers = 165331.80 KB/sec
Children see throughput for 1 rewriters = 115734.91 KB/sec
Children see throughput for 1 readers = 719323.81 KB/sec
Children see throughput for 1 re-readers = 732008.56 KB/sec
Children see throughput for 1 random readers = 549284.69 KB/sec
Children see throughput for 1 random writers = 116389.76 KB/sec
Auch mit hdparm -t /dev/sda
Befehl haben wir:
Timing gepufferte Festplattenlesevorgänge: 1802 MB in 3,00 Sekunden = 600,37 MB / s
Irgendwelche Vorschläge für die sehr langsame Schreibgeschwindigkeit?
Update 3 - Einige Informationen in Kommentaren angefordert:
Die Schreibgeschwindigkeit ist immer noch sehr niedrig (~ 150 MB / s, was nicht einmal 1/3 einer einzelnen Festplatte entspricht).
Ausgabe für df -h
und fdisk -l
:
[root@192 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 441G 3.2G 415G 1% /
tmpfs 36G 0 36G 0% /dev/shm
[root@192 ~]# fdisk -l
Disk /dev/sda: 480.0 GB, 480047620096 bytes
255 heads, 63 sectors/track, 58362 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00040c3c
Device Boot Start End Blocks Id System
/dev/sda1 * 1 58363 468795392 83 Linux
iozone -t1 -i0 -i1 -i2 -r1m -s144g
. :(Antworten:
Während die andere Antwort hier einige Punkte enthält, sind Ihre spezifischen Probleme auf Plattformbeschränkungen und die Betriebssystemkonfiguration zurückzuführen:
Durch die Verwendung von Consumer- SATA-SSDs auf einem HP Smart Array P410-RAID-Controller ist der Durchsatz begrenzt . SATA-Festplatten werden auf diesen Controllern mit 3,0 Gbit / s (3 G) und nicht mit 6,0 Gbit / s (6 G) ausgeführt. Dies ist also eine Barriere, die sich auf die Lesegeschwindigkeit Ihrer Intel-SSDs auswirkt. 300 MB / s oder weniger pro Laufwerk.
Der Smart Array P410-Controller stellt bei Verwendung mit SSDs spezielle Anforderungen und Best Practices . Kurz gesagt, der Controller kann 50.000 IOPS ausführen. Deaktivieren Sie den Array-Beschleuniger für Ihr SSD-Volume, und die Leistung liegt bei ~ 6 Laufwerken.
Bei der Festplattenleistung geht es nicht immer um die sequentielle Lese- / Schreibgeschwindigkeit. Versuchen Sie das Benchmarking mit einem geeigneten Tool wie iozone oder bonnie ++ . Sie erhalten weiterhin die zufälligen E / A-Vorteile Ihrer mehreren Laufwerke.
Installieren Sie auf Betriebssystemebene das Paket " optimierte Dienstprogramme" und stellen Sie das Profil so ein
enterprise-performance
, dass Schreibbarrieren aus Ihren Dateisystemen entfernt werden, und stellen Sie den richtigen E / A-Aufzug für Ihr Setup ein. Dies wird auch hier in anderen Fragen behandelt .Es sieht so aus, als würden Sie LVM verwenden. Das kann auch Auswirkungen haben ...
Hier ist ein Bericht der Iozone für einen G7 ProLiant, der mit vier 6G-SATA-SSDs (auf 3G-Geschwindigkeit heruntergeschaltet) auf demselben HP Smart Array P410-RAID-Controller ausgeführt wird.
Sie sollten ~ 470 MB / s Schreibvorgänge und 650 MB / s + Lesevorgänge sehen.
quelle
Oh je, wo soll ich anfangen?
Es geht um so viel, und Sie brauchen ein gutes Verständnis für alles. Wenn Sie nur ein paar Festplatten gegen einen RAID-Controller werfen, erhalten Sie nicht die gewünschten Ergebnisse.
Dies kann nicht einfach beantwortet werden. Aber zumindest ist hier eine Liste von Dingen, die Sie sich ansehen müssen:
Da Ihr Durchsatz für das gesamte RAID (ohne Berücksichtigung von FS) erheblich niedriger ist als bei einer einzelnen Festplatte, ist es wahrscheinlich, dass Sie Ihre Schreibstrategie falsch eingerichtet haben. Der Controller wartet wahrscheinlich darauf, dass alle Festplatten den Schreibvorgang bestätigen (und es sei denn, Sie haben den RAM auf der Batterie des Controllers gesichert, ist dies möglicherweise in Ihrem besten Interesse).
quelle