Dell PowerEdge 2950 mit zwei 1-Gbit / s-NICs, die an zwei 1-Gbit / s-Ports an einem Switch angeschlossen sind, und anschließend an eine NetApp mit vier 1-Gbit / s-NICs, die als eine virtuelle Schnittstelle vorhanden sind. 24 Laufwerke, 7200 k SATA, NetApp RAID-DP. Ich habe jede Host-NIC mithilfe von MPIO im Microsoft iSCSI-Initiator der NetApp zugeordnet. Wenn ich mit SQLIO teste, erscheint mein Schreibdurchsatz bei etwa 200 MB angemessen, aber meine Lesevorgänge liegen näher bei 100 MB.
Sollten meine Lesevorgänge nicht näher an 200 MB liegen als meine Schreibvorgänge? Ist dies ein Konfigurationsproblem oder gibt es ein grundlegendes Speicherproblem, das ich nicht verstehe?
Update: Hier sind IOPS für die zufällige Arbeitslast. Die Lesevorgänge machen jedoch Sinn, ich bin mir nicht sicher, was ich von 20000 für die Schreibvorgänge halten soll. Der SAN-Cache beträgt 3,2 GB. SQLIO-Tests beziehen sich auf eine 25-GB-Datei.
quelle
Antworten:
Schreibvorgänge auf der Festplatte werden tatsächlich in den Speicher (NVRAM) des Filers geschrieben, um später auf die Festplatte gespült zu werden. Bei einem inaktiven Filer sind diese unglaublich schnell und 20.000 Iops sind durchaus glaubwürdig (bei den meisten SSDs werden ähnliche Geschwindigkeiten festgestellt). .
Lesevorgänge müssen dagegen von der Festplatte kommen, es sei denn, sie befinden sich bereits im Lese-Cache des Dateiservers (der sich im Gegensatz zu Schreibvorgängen im flüchtigen Speicher befindet).
Es ist schwierig, Speicheranbieter auf iops für rotierende Festplatten zu fixieren, aber für ein Laufwerk mit 7200 U / min sind 80-120 iops durchaus glaubwürdig. Wenn man bedenkt, dass Sie wahrscheinlich ein paar Festplatten an NetApps RAID-DP und / oder Ersatzlaufwerke verloren haben, liegen 2.200 Iops nahe an dem, was Sie von 22 Festplatten mit jeweils 100 Iops erwarten können.
Dies erklärt möglicherweise nicht Ihre Lesegeschwindigkeiten (Ihre Datenträger führen möglicherweise nicht die vollen 2200 Iops aus, wenn Sie einen sequenziellen Lesevorgang durchführen), kann jedoch zumindest zur Erklärung Ihrer Schreibleistung beitragen.
quelle
Für die Nachwelt haben wir nach langem Ausprobieren herausgefunden, wie wir den erwarteten Durchsatz erzielen können.
Wie oben erwähnt, verfügte die NetApp über eine virtuelle Schnittstelle, die von vier physischen Netzwerkkarten unterstützt wurde. Der Host verfügt über zwei Netzwerkkarten, und ich habe MPIO über den MS iSCSI-Initiator so konfiguriert, dass von jeder Netzwerkkarte ein Pfad zu der einen virtuellen Schnittstelle vorhanden ist. Das Ergebnis war der oben angegebene Durchsatz - Schreibvorgänge waren bei fast 200 MB oder der Geschwindigkeit von zwei Netzwerkkarten sinnvoll, aber die Lesevorgänge waren halb so hoch wie die Geschwindigkeit einer Netzwerkkarte.
Bei näherer Betrachtung stellte unser SAN-Mitarbeiter fest, dass der Datenverkehr nur durch eine der physischen Netzwerkkarten für die Lesevorgänge floss. Ich bin nicht sicher, ob wir einen Konfigurationsfehler hatten, aber wir haben zwei Dinge ausprobiert und beide haben uns unseren Durchsatz gebracht. Eine bestand darin, von einer von vier Netzwerkkarten gesicherten virtuellen Schnittstelle zu zwei virtuellen Schnittstellen zu wechseln, die jeweils von zwei Netzwerkkarten gesichert wurden. Ordnen Sie dann eine Host-NIC einer virtuellen Schnittstelle zu. Das andere, was wir versucht haben, war die Verwendung von "Aliasing" auf der SAN-Seite, um mehrere virtuelle Schnittstellen darzustellen. (Ich bin kein SAN-Typ, also habe ich das hoffentlich richtig gesagt.)
Mein Take-Away ist, dass wir nur das SAN brauchten, um mehr als eine Schnittstelle zu präsentieren, damit der Initiator wirklich mehrere Pfade sah. Hier ist jetzt unser Durchsatz:
quelle