Ich habe ein laufendes System mit geringer E / A-Auslastung:
- HP DL380G7 (24 GB RAM)
- Smart Array p410i mit 512 MB Battary Backed Write Cache
- 6x SAS 10k U / min 146gb Laufwerke in RAID10
- Debian Squeze Linux, ext4 + LVM, hpacucli installiert
iostat (cciss / c0d1 = raid10-Array, dm-7 = 60G lvm-Partition für Test):
Gerät: rrqm / s wrqm / sr / sw / s rMB / s wMB / s avgrq-sz avgqu-sz warten auf svctm% util cciss / c0d0 0,00 101,20 0,00 6,20 0,00 0,42 138,58 0,00 0,00 0,00 0,00 cciss / c0d1 0,00 395,20 3,20 130,20 0,18 2,05 34,29 0,04 0,26 0,16 2,08 dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-2 0,00 0,00 3,20 391,00 0,18 1,53 8,87 0,04 0,11 0,05 1,84 dm-3 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-4 0,00 0,00 0,00 106,80 0,00 0,42 8,00 0,00 0,00 0,00 0,00 dm-5 0,00 0,00 0,00 0,60 0,00 0,00 8,00 0,00 0,00 0,00 0,00 dm-6 0,00 0,00 0,00 2,80 0,00 0,01 8,00 0,00 0,00 0,00 0,00 dm-1 0,00 0,00 0,00 132,00 0,00 0,52 8,00 0,00 0,02 0,01 0,16 dm-7 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-8 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
hpacucli "ctrl all show config"
Smart Array P410i in Steckplatz 0 (eingebettet) (sn: 5001438011FF14E0) Array A (SAS, nicht verwendeter Speicherplatz: 0 MB) Logisches Laufwerk 1 (136,7 GB, RAID 1, OK) physischer Antrieb 1I: 1: 1 (Port 1I: Box 1: Schacht 1, SAS, 146 GB, OK) physischer Antrieb 1I: 1: 2 (Port 1I: Box 1: Schacht 2, SAS, 146 GB, OK) Array B (SAS, nicht verwendeter Speicherplatz: 0 MB) Logisches Laufwerk 2 (410,1 GB, RAID 1 + 0, OK) physischer Antrieb 1I: 1: 3 (Port 1I: Box 1: Schacht 3, SAS, 146 GB, OK) physischer Antrieb 1I: 1: 4 (Port 1I: Box 1: Schacht 4, SAS, 146 GB, OK) physisches Laufwerk 2I: 1: 5 (Port 2I: Box 1: Schacht 5, SAS, 146 GB, OK) physischer Antrieb 2I: 1: 6 (Port 2I: Box 1: Schacht 6, SAS, 146 GB, OK) physisches Laufwerk 2I: 1: 7 (Port 2I: Box 1: Schacht 7, SAS, 146 GB, OK) physischer Antrieb 2I: 1: 8 (Port 2I: Box 1: Schacht 8, SAS, 146 GB, OK) SEP (Hersteller-ID PMCSIERA, Modell SRC 8x6G) 250 (WWID: 5001438011FF14EF)
hpacucli "ctrl all show status"
Smart Array P410i in Steckplatz 0 (eingebettet) Controller-Status: OK Cache-Status: OK Batterie- / Kondensatorstatus: OK
Sysbench-Befehl
sysbench --init-rng = on --test = fileio --num-threads = 16 --file-num = 128 --file-block-size = 4K --file-total-size = 54G --file-test -mode = rndrd --file-fsync-freq = 0 --file-fsync-end = off run --max-request = 30000
Sysbench-Ergebnisse
sysbench 0.4.12: Benchmark für die Bewertung von Multithread-Systemen Ausführen des Tests mit folgenden Optionen: Anzahl der Threads: 16 Initialisierung des Zufallszahlengenerators vom Timer. Zusätzliche Flags zum Öffnen von Dateien: 0 128 Dateien mit jeweils 432 MB 54 GB Gesamtdateigröße Blockgröße 4 KB Anzahl der zufälligen Anforderungen für zufällige E / A: 30000 Lese- / Schreibverhältnis für kombinierten zufälligen E / A-Test: 1,50 Verwenden des synchronen E / A-Modus Zufälliger Lesetest durchführen Threads gestartet! Erledigt. Durchgeführte Operationen: 30000 Lesen, 0 Schreiben, 0 Andere = 30000 Gesamt Lesen 117,19 MB Geschrieben 0b Insgesamt übertragen 117,19 MB (935,71 KB / Sek.) 233.93 Anforderungen / Sek. Ausgeführt Zusammenfassung der Testausführung: Gesamtzeit: 128.2455s Gesamtzahl der Veranstaltungen: 30000 Gesamtzeit für die Ereignisausführung: 2051.5525 Statistik pro Anfrage: min: 0,00 ms Durchschnitt: 68,39 ms max: 2010.15ms ca. 95 Perzentil: 660,40 ms Themen Fairness: Ereignisse (Durchschnitt / Standard): 1875.0000 / 111.75 Ausführungszeit (avg / stddev): 128,2220 / 0,02
Iostat während des Tests
avg-cpu:% user% nice% system% iowait% stehlen% idle 0,00 0,01 0,10 31,03 0,00 68,86 Gerät: rrqm / s wrqm / sr / sw / s rMB / s wMB / s avgrq-sz avgqu-sz warten auf svctm% util cciss / c0d0 0,00 0,10 0,00 0,60 0,00 0,00 9,33 0,00 0,00 0,00 0,00 cciss / c0d1 0,00 46,30 208,50 1,30 0,82 0,10 8,99 29,03 119,75 4,77 100,00 dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-2 0,00 0,00 0,00 51,60 0,00 0,20 8,00 49,72 877,26 19,38 100,00 dm-3 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-4 0,00 0,00 0,00 0,70 0,00 0,00 8,00 0,00 0,00 0,00 0,00 dm-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 dm-6 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,00 0,00 0,00 100,00 dm-1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,00 0,00 0,00 100,00 dm-7 0,00 0,00 208,50 0,00 0,82 0,00 8,04 25,00 75,29 4,80 100,00 dm-8 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
Bonnie ++ v1.96
cmd: / usr / sbin / bonnie ++ -c 16 -n 0 Ein Byte nach dem anderen schreiben ... fertig Intelligent schreiben ... fertig Umschreiben ... fertig Ein Byte nach dem anderen lesen ... fertig Intelligent lesen ... fertig starte sie ... fertig ... fertig ... fertig ... fertig ... fertig ... fertig ... Version 1.96 ------ Sequenzielle Ausgabe ------ - Sequenzielle Eingabe- - Zufällige- Parallelität 16 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Maschinengröße K / s% CP K / s% CP K / s% CP K / s% CP K / s% CP / s% CP seo-db 48304M 819 99 188274 17 98395 8 2652 78 201280 8 265.2 1 Latenz 14899us 726ms 15194ms 100ms 122ms 665ms 1,96,1,96, seo-db, 16,1337541936,48304M ,, 819,99,188274,17,98395,8,2652,78,201280,8,265,2,1 ,,,,,,,,,,,,,, ,,,, 14899us, 726 ms, 15194 ms, 100 ms, 122 ms, 665 ms ,,,,,,
Fragen
Sysbench zeigte also 234 zufällige Lesevorgänge pro Sekunde.
Ich erwarte mindestens 400.
Was kann der Engpass sein? LVM?
Ein anderes System mit mdadm raid1 + 2x 7200rpm-Laufwerken zeigt über 200 zufällige Lesevorgänge pro Sekunde ...
Vielen Dank für jede Hilfe!
debian
lvm
hp
performance
hp-smart-array
Oleg Golovanov
quelle
quelle
sysbench
Befehlszeile? Simulieren Sie ein reales Nutzungsszenario?Antworten:
Ihr System ist aufgrund Ihrer Hardwarespezifikationen definitiv unterdurchschnittlich. Ich habe das
sysbench
Dienstprogramm auf einige inaktive HP ProLiant DL380 G6 / G7-Server geladen, auf denen CentOS 5/6 ausgeführt wird, um deren Leistung zu überprüfen. Dies sind normale feste Partitionen anstelle von LVM. (Ich verwende LVM normalerweise nicht, da HP Smart Array-Controller flexibel sind.)Der DL380 G6 verfügt über ein RAID 1 + 0-Array mit 6 Festplatten auf einem Smart Array P410-Controller mit 512 MB batteriegepuffertem Cache. Der DL380 G7 verfügt über ein 2-Platten-Enterprise-SLC-SSD-Array. Die Dateisysteme sind XFS . Ich habe dieselbe Sysbench-Befehlszeile verwendet wie Sie:
Meine Ergebnisse waren 1595 zufällige Lesevorgänge pro Sekunde auf 6 Festplatten.
Auf SSD betrug das Ergebnis 39047 zufällige Lesevorgänge pro Sekunde . Die vollständigen Ergebnisse finden Sie am Ende dieses Beitrags ...
Was Ihr Setup betrifft, ist das erste, was mir auffällt, die Größe Ihrer Testpartition. Sie füllen die 60-GB-Partition fast mit 54 GB Testdateien. Ich bin mir nicht sicher, ob ext4 ein Problem mit einer Leistung von 90 +% hat, aber das ist für Sie am schnellsten zu ändern und erneut zu testen. (oder verwenden Sie einen kleineren Satz von Testdaten)
Selbst mit LVM stehen einige Optimierungsoptionen für dieses Controller- / Festplatten-Setup zur Verfügung. Es ist hilfreich, das Vorauslesen zu überprüfen und die Einstellung des E / A-Schedulers von der Standard- CFQ auf Deadline oder Noop zu ändern . Die Fragen und Antworten finden Sie unter: Linux - Real-World-Hardware-RAID-Controller-Tuning (scsi und cciss)
Wie hoch ist das Cache-Verhältnis Ihres RAID-Controllers? Ich verwende normalerweise eine Schreib- / Lesebilanz von 75% / 25%. Dies sollte ein schneller Test sein. Das 6-Platten-Array wurde in 18 Sekunden fertiggestellt. Ihre dauerte über 2 Minuten.
Können Sie einen Bonnie ++ - oder Iozone- Test für die betreffende Partition / das betreffende Array ausführen ? Es wäre hilfreich zu prüfen, ob andere Engpässe im System vorliegen. Ich war mit sysbench nicht vertraut , aber ich denke, diese anderen Tools geben Ihnen einen besseren Überblick über die Funktionen des Systems.
Optionen für die Dateisystem-Bereitstellung können einen kleinen Unterschied machen, aber ich denke, das Problem könnte tiefer liegen ...
hpacucli Ausgabe ...
sysbench DL380 G6 6-Platten-Ergebnisse ...
sysbench DL380 G7 SSD Ergebnisse ...
quelle
bonnie++
Befehlszeile anzeigen?deadline
auch ... Unter DB-Lasten läuft es möglicherweise besser alsnoop
, und es gibt einige zusätzliche Tunables in Ihrem,/sys/block/cciss1/queue/iosched/
wenn Sie verwendendeadline
. In diesem Beitrag finden Sie weitere Informationen zur Feinabstimmung. Auf diese Weise konnte ich diesen Test auf bis zu 2600 zufällige Lesevorgänge pro Sekunde bringen.