Wie wir einen Cluster für geladene Microsoft SQL-Datenbanken übertakteten und die begehrten 200.000 IOPS erhielten

Im vergangenen Jahr haben wir die Leistung großer, schwerer Datenbanken in unserer Cloud aktiv aufgenommen. Auf den ersten Blick schienen wir nur zwei Möglichkeiten zu haben: kostengünstige Speichersysteme mit langsamen Festplatten oder sehr teure Speichersysteme mit schnellen. 





Wir wollten die Arbeit hoch geladener Microsoft SQL-Datenbanken beschleunigen und gleichzeitig unseren Kunden günstige Kosten für den Service bieten. Als Ergebnis der Tests haben wir die Lösung " Cluster für geladene Microsoft SQL-Datenbanken in der Cloud " zusammengestellt. Heute werden wir einen Blick hinein werfen und ein wenig mehr technische Einführung und spezifische Zahlen hinzufügen. 





Der Beitrag behauptet nicht, tief zu tauchen und enthüllt nicht alle technischen Nuancen, sondern zeigt nur die Ergebnisse unserer Tests. Ich werde Ihnen zeigen, auf welcher Hardware-, Software- und Netzwerkkonfiguration wir die Datenbankleistungstests durchgeführt haben, wie wir sie getestet haben und welche Ergebnisse wir erzielt haben. 





Problembedingungen: Wie wurde die Datenbankleistung überprüft?

Wie die Hardware für den Cluster ausgewählt wurde . Zu Beginn haben wir nach Servern mit folgenden Eigenschaften gesucht: 





  • - 1U. - - 2U, "" . 1U : .  





  • 10 U.2. NVM. , .  





  • Intel Optane DC Persistent Memory





  • Hardware compatibility list (HCL) Microsoft – .









Supermicro 1029U-TN10RT:





, - 1U, 2 Intel Xeon Scalable. 





:





- – Ultra 1U SYS-1029U-TN10RT.





- CPU – 2 x Intel Xeon Gold 6246 (3.3GHz, 12C).





- Storage – 10 x Intel DC P4510 1TB NVMe SSD, 1DWPD.





- DRAM – 12 x 64GB DDR4-2666.





- Persistent Memory – 2 x 128GB DDR4-2666 Intel Optane DC PMMs.





- Network – 2 x 25GbE Mellanox ConnectX-4 Lx.





2,5 NVMe: 10 U.2.





. Windows Server 2019 Storage Spaces Direct. RAID – . 





. . 3-way Mirroring, 3 . 





– StorageRack. , . , . 





. . . RDMA – . Mellanox ConnectX-4 Lx c RoCEv2 (RDMA over Converged Ethernet).





Dank RoCE entladen wir den Transport und den Prozessor.  Ich habe das Foto von Mellanox gemacht.
RoCE . Mellanox.

:  

. VMFleet Microsoft, FIO.





. "" . 150 c "" 40 GB, 50 . – 4:1, CPU – 60%. – 3, 3 TB .





.





CPU Oversubscription 4:1





Pattern: t1, o32, b16k





Metrics





100% Random Read





90% Random Read/ 10% Random Write





70% Random Read/ 30% Random Write





IOPS per Volume





475000





275000





169000





Latency per Volume





0,2 ms





0,2 ms / 0,4 ms





0,2 ms / 0,4 ms





BW (MB/s) per Volume





7750





4500





2750





IOPS per VM





9500





5500





3380





BW (MB/s) per VM





155





90





55





IOPS per GB





237





137





84





Pattern: t1, o32, b4k





Metrics





100% Random Read





90% Random Read/ 10% Random Write





70% Random Read/ 30% Random Write





IOPS per Volume





509000





282000





190000





Latency per Volume





0,12 ms





0,12 ms / 0,33 ms





0,13 ms / 0,36 ms





BW (MB/s) per Volume





2000





1150





780





IOPS per VM





10180





5640





3800





BW (MB/s) per VM





40





23





15





IOPS per GB





254





112





76





Pattern: t1, o32, b2m





Metrics





100% Sequential Read





BW (MB/s) per Volume





19000





BW (MB/s) per VM





380





. , , . 2:1 ( 25 ), CPU . : 100% 4 4 16 . .





Wir sehen, dass die Read Lat-Verzögerungen recht gering sind.
, Read Lat .

FIO , .





DBaaS Microsoft SQL . 4 200 000 IOPS 1 100% 4k.





Windows Server 2019 Storage Spaces Direct. !








All Articles