
Hallo zusammen. Wir setzen unsere Einführung in das Datenspeichersystem Aerodisk VOSTOK fort, das auf dem russischen Prozessor Elbrus 8C basiert.
In diesem Artikel werden wir (wie versprochen) eines der beliebtesten und interessantesten Themen, das mit Elbrusen verbunden ist, näher beleuchten – die Leistung. Es gibt viele Spekulationen über die Leistung des Elbrus, und diese sind absolut polarisiert. Pessimisten sagen, dass die Leistung des Elbrus derzeit „nicht existent“ ist und dass es Jahrzehnte dauern wird, um die „Top“-Hersteller einzuholen (d.h. unter den gegenwärtigen Umständen – niemals). Auf der anderen Seite sagen Optimisten, dass der Elbrus 8C bereits gute Ergebnisse liefert und dass wir in den nächsten Jahren mit den neuen Prozessor-Versionen (Elbrus 16C und 32C) „aufholen und überholen“ können.
Wir bei Aerodisk sind pragmatische Menschen, deshalb sind wir den einfachsten und klarsten (für uns) Weg gegangen: testen, Ergebnisse festhalten und erst dann Schlussfolgerungen ziehen. Schließlich haben wir eine recht große Anzahl von Tests durchgeführt und eine Reihe von Besonderheiten der Arbeitsweise des Elbrus 8C mit der e2k-Architektur (einschließlich einiger erfreulicher) festgestellt und natürlich mit ähnlichen Speicherlösungen auf Intel Xeon Prozessoren der amd64-Architektur verglichen.
Übrigens werden wir ausführlicher über die Tests, Ergebnisse und die zukünftige Entwicklung der Speicherlösungen auf Elbrusen bei unserem nächsten Webinar "OberIT" am 15.10.2020 um 15:00 Uhr sprechen. Die Registrierung erfolgt über den Link unten.
→
Teststand
Wir haben zwei Stände erstellt. Beide Stände bestehen aus einem Server mit Linux, der über 16G FC-Switches mit zwei Controllern der Speicherlösung verbunden ist, auf denen 12 SAS SSDs mit 960 GB installiert sind (11,5 TB „brutto Kapazität“ oder 5,7 TB „nutzbare“ Kapazität, wenn RAID-10 verwendet wird).
Schematisch sieht der Stand folgendermaßen aus.

Stand Nr. 1 e2k (Elbrus)
Die Konfiguration der Hardware ist wie folgt:
- Linux-Server (2x Intel Xeon E5-2603 v4 (6 Kerne, 1,70 GHz), 64 GB DDR4, 2x FC-Adapter 16G 2 Ports) – 1 Stück.
- FC-Switch 16 G – 2 Stück.
- Speicherlösung Aerodisk Vostok 2-E12 (2x Elbrus 8C (8 Kerne, 1,20 GHz), 32 GB DDR3, 2x FE FC-Adapter 16G 2 Ports, 12x SAS SSD 960 GB) – 1 Stück.
Stand Nr. 2 amd64 (Intel)
Im Vergleich zu einer ähnlichen Konfiguration auf e2k wurde eine vergleichbare Konfiguration der Speicherlösung mit einem ähnlichen Prozessor in den Spezifikationen auf amd64 verwendet:
- Linux-Server (2x Intel Xeon E5-2603 v4 (6 Kerne, 1,70 GHz), 64 GB DDR4, 2x FC-Adapter 16G 2 Ports) – 1 Stück.
- FC-Switch 16 G – 2 Stück.
- Speicherlösung Aerodisk Engine N2 (2x Intel Xeon E5-2603 v4 (6 Kerne, 1,70 GHz), 32 GB DDR4, 2x FE FC-Adapter 16G 2 Ports, 12x SAS SSD 960 GB) – 1 Stück
Wichtiger Hinweis: Die im Test verwendeten Elbrus 8C-Prozessoren unterstützen nur DDR3-RAM, was natürlich "schlecht, aber nicht von Dauer" ist. Der Elbrus 8CV (den wir derzeit nicht auf Lager haben, aber bald verfügbar sein wird) unterstützt DDR4.
Testmethodik
Für die Lastgenerierung haben wir das beliebte und bewährte Programm Flexible IO (FIO) verwendet.
Beide Speicherlösungen sind gemäß unseren eigenen Empfehlungen zur Konfiguration basierend auf Anforderungen an hohe Leistung im blockbasierten Zugriff konfiguriert, weshalb wir DDP (Dynamic Disk Pool) verwenden. Um die Testergebnisse nicht zu verzerren, haben wir bei beiden Speicherlösungen die Kompression, Deduplication und RAM-Cache deaktiviert.
Es wurden 8 D-LUNs im RAID-10 mit jeweils 500 GB erstellt, das gesamte nutzbare Volumen beträgt 4 TB (d.h. etwa 70 % der möglichen nutzbaren Kapazität dieser Konfiguration).
Es werden grundlegende und beliebte Nutzungsszenarien der Speicherlösungen durchgeführt, insbesondere:
Die ersten beiden Tests emulieren den Betrieb einer transaktionalen DBMS. In dieser Testgruppe sind IOPS und Latenz von Interesse.
1) Zufälliges Lesen in kleinen Blöcken von 4k
a. Blockgröße = 4k
b. Lesen/Schreiben = 100 %/0 %
c. Anzahl der Aufgaben = 8
d. Wartesch vertiefung = 32
e. Lastcharakteristik = Volle Zufälligkeit
2) Zufälliges Schreiben in kleinen Blöcken von 4k
a. Blockgröße = 4k
b. Lesen/Schreiben = 0 %/100 %
c. Anzahl der Aufgaben = 8
d. Wartesch vertiefung = 32
e. Lastcharakteristik = Volle Zufälligkeit
Die zweiten beiden Tests emulieren den Betrieb des analytischen Teils der DBMS. In dieser Testgruppe sind uns ebenfalls IOPS und Latenz von Interesse.
3) Sequenzielles Lesen in kleinen Blöcken von 4k
a. Blockgröße = 4k
b. Lesen/Schreiben = 100 %/0 %
c. Anzahl der Aufgaben = 8
d. Wartesch vertiefung = 32
e. Lastcharakteristik = Sequenziell
4) Sequenzielles Schreiben in kleinen Blöcken von 4k
a. Blockgröße = 4k
b. Lesen/Schreiben = 0 %/100 %
c. Anzahl der Aufgaben = 8
d. Wartesch vertiefung = 32
e. Lastcharakteristik = Sequenziell
Die dritte Testgruppe emuliert den Betrieb des Streaminglesens (Beispiel – Online-Übertragungen, Wiederherstellung von Backups) und des Streaming schreibens (Beispiel – Videoüberwachung, Speicherung von Backups). In dieser Testgruppe sind nicht die IOPS, sondern MB/s sowie Latenz von Interesse.
5) Sequenzielles Lesen in großen Blöcken von 128k
a. Blockgröße = 128k
b. Lesen/Schreiben = 0 %/100 %
c. Anzahl der Aufgaben = 8
d. Wartesch vertiefung = 32
e. Lastcharakteristik = Sequenziell
6) Sequenzielles Schreiben in großen Blöcken von 128k
a. Blockgröße = 128k
b. Lesen/Schreiben = 0 %/100 %
c. Anzahl der Aufgaben = 8
d. Wartesch vertiefung = 32
e. Lastcharakteristik = Sequenziell
Jeder Test wird eine Stunde dauern, ohne die 7-minütige Aufwärmzeit des Arrays.
Testergebnisse
Die Testergebnisse sind in zwei Tabellen zusammengefasst.
Elbrus 8C (Speicherlösung Aerodisk Vostok 2-E12)

Intel Xeon E5-2603 v4 (Speicherlösung Aerodisk Engine N2)

Die Ergebnisse waren äußerst interessant. In beiden Fällen haben wir die Prozessorkapazitäten der Speicherlösungen gut ausgenutzt (70-90 % Auslastung), und bei dieser Ausgangslage fallen die Vor- und Nachteile beider Prozessoren deutlich ins Auge.
In beiden Tabellen sind die Tests, in denen sich die Prozessoren "sicher fühlen" und gute Ergebnisse zeigen, grün hervorgehoben, während die Situationen, die die Prozessoren "nicht mögen", orange markiert sind.
Wenn man von zufälliger Belastung mit kleinen Blöcken spricht, dann:
- In Bezug auf das zufällige Lesen liegt Intel eindeutig vor Elbrus, mit einem Unterschied von 2x;
- In Bezug auf das zufällige Schreiben gibt es eindeutig ein Unentschieden, beide Prozessoren haben etwa gleiche und respektable Ergebnisse erzielt.
Bei sequenzieller Belastung mit kleinen Blöcken zeigt sich ein anderes Bild:
- Sowohl beim Lesen als auch beim Schreiben übertrifft Intel Elbrus deutlich (im 2-fachen). Dabei, if der IOPS-Wert von Elbrus unter dem von Intel liegt, sieht er mit (200-300 Tausend) respektabel aus, aber die Latenzen sind ein deutliches Problem (sie sind dreimal höher als bei Intel). Fazit: Die aktuelle Version von Elbrus 8C "mag" sequenzielle Belastungen mit kleinen Blöcken ganz und gar nicht. Es gibt eindeutig Verbesserungsmöglichkeiten.
Bei sequenzieller Belastung mit großen Blöcken ist das Bild genau umgekehrt:
- Beide Prozessoren haben ungefähr gleich gute Ergebnisse in MB/s gezeigt, aber es gibt ein Aber… Die Latenzwerte von Elbrus sind 10 (zehn, Karl!!!) Mal besser (d.h. niedriger) als die des entsprechenden Prozessors von Intel (0,4/0,5 ms gegenüber 5,1/6,5 ms). Zunächst dachten wir, dass das ein Glitch war, deshalb haben wir die Ergebnisse erneut überprüft und einen Wiederholungstest durchgeführt, aber der Wiederholungstest zeigte dasselbe Bild. Das ist ein erhebliches Vorteil von Elbrus (und der e2k-Architektur im Allgemeinen) gegenüber Intel (und damit der amd64-Architektur). Lassen Sie uns hoffen, dass dieser Erfolg weiterentwickelt wird.
Es gibt noch eine interessante Eigenschaft von Elbrus, die der aufmerksame Leser anhand der Tabelle bemerken könnte. Wenn man sich den Unterschied zwischen Lese- und Schreibwerten von Intel ansieht, ist das Lesen in allen Tests im Durchschnitt um etwa 50%+ schneller als das Schreiben. Das ist die Norm, an die sich alle (auch wir) gewöhnt haben. Wenn man sich Elbrus ansieht, sind die Schreibwerte deutlich näher an den Lesewerten, das Lesen übertrifft in der Regel das Schreiben um 10 – 30%, nicht mehr.
Was bedeutet das? Dass Elbrus "sehr gerne" aufzeichnet, und das wiederum bedeutet, dass dieser Prozessor in Aufgaben, bei denen die Aufzeichnung eindeutig über dem Lesen steht (wer hat das Jarovoi-Gesetz gesagt?), sehr nützlich sein wird. Dies ist auch ein unbestreitbarer Vorteil der e2k-Architektur, und diesen Vorteil gilt es auszubauen.
Schlussfolgerungen und die naheste Zukunft
Vergleichende Tests der Mittelklasse-Prozessoren Elbrus und Intel für Speicheraufgaben ergaben in etwa gleiche und ebenso respektable Ergebnisse, wobei jeder Prozessor seine interessanten Eigenheiten zeigte.
Intel hat Elbrus im zufälligen Lesen kleiner Blöcke sowie im sequenziellen Lesen und Schreiben kleiner Blöcke deutlich übertroffen.
Bei der zufälligen Aufzeichnung kleiner Blöcke zeigen beide Prozessoren gleiche Ergebnisse.
In Bezug auf die Latenzwerte schneidet Elbrus im Streaming-Betrieb, d.h. im sequenziellen Lesen und Schreiben großer Blöcke, erheblich besser ab als Intel.
Darüber hinaus meistert Elbrus im Gegensatz zu Intel sowohl Lese- als auch Schreiblasten gleichermaßen gut, während bei Intel das Lesen immer deutlich besser ist als das Schreiben.
Aus den erhaltenen Ergebnissen kann man schließen, dass die Speichersysteme Aerodisk Vostok auf dem Prozessor Elbrus 8S in den folgenden Aufgaben anwendbar sind:
- Informationssysteme mit Schwerpunkt auf Schreiboperationen;
- Dateizugriff;
- Online-Übertragungen;
- Videoüberwachung;
- Datensicherung;
- Medieninhalte.
Das Team von MCST hat noch viel zu tun, aber das Ergebnis ihrer Arbeit ist bereits jetzt sichtbar, was natürlich erfreulich ist.
Diese Tests wurden auf dem Linux-Kernel für e2k Version 4.19 durchgeführt. Derzeit befindet sich der Linux-Kernel 5.4-e2k in der Beta-Testphase (bei MCST, im Basalt SPU sowie bei uns, Aerodisk), in dem unter anderem der Scheduler gründlich überarbeitet und zahlreiche Optimierungen für Hochgeschwindigkeits-SSDs vorgenommen wurden. Zudem veröffentlicht die MCST für die Kernel der 5.x.x-Serie einen neuen LCC-Compiler in Version 1.25. Den vorläufigen Ergebnissen zufolge ermöglicht der neue Compiler auf demselben Elbrus 8C-Prozessor die Verwendung des neuen Kernels, der Kernumgebung, der System-Utilities und Bibliotheken sowie der eigentlichen Aerodisk VOSTOK-Software, einen noch signifikanten Leistungszuwachs zu erzielen. Und das ohne Hardwarewechsel — auf demselben Prozessor und bei denselben Frequenzen.
Wir erwarten die Veröffentlichung der Version Aerodisk VOSTOK basierend auf Kernel 5.4 gegen Ende des Jahres, und sobald die Arbeit an der neuen Version abgeschlossen ist, werden wir die Testergebnisse aktualisieren und hier ebenfalls veröffentlichen.
Wenn wir nun zum Anfang des Artikels zurückkehren und die Frage beantworten, wer recht hat: die Pessimisten, die sagen, dass Elbrus „nichts“ ist und die führenden Prozessorhersteller niemals aufholen wird, oder die Optimisten, die sagen, dass „wir schon fast aufgeholt haben und bald überholen werden“? Wenn man nicht von Stereotypen und religiösen Vorurteilen ausgeht, sondern von realen Tests, steht fest, dass die Optimisten recht haben.
Elbrus zeigt bereits jetzt gute Ergebnisse im Vergleich zu AMD64-Prozessoren der Mittelklasse. Zu den Spitzenmodellen der Serverprozessoren von Intel oder AMD 8 ist es natürlich ein weiter Weg, aber das war auch nicht das Ziel; dafür werden die Prozessoren 16C und 32C herausgebracht. Dann werden wir darüber sprechen.
Wir verstehen, dass nach diesem Artikel die Fragen zu Elbrus noch zahlreicher werden, deshalb haben wir beschlossen, ein weiteres Online-Webinar „Nahe der IT“ zu organisieren, um diese Fragen live zu beantworten.
Diesmal haben wir Konstantin Trushkin, den stellvertretenden Generaldirektor der MCST, zu Gast. Die Anmeldung für das Webinar ist über den untenstehenden Link möglich.
→
Vielen Dank an alle, wie gewohnt freuen wir uns auf konstruktive Kritik und interessante Fragen.
Quelle: habr.com
