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 .
. . . RDMA – . Mellanox ConnectX-4 Lx c RoCEv2 (RDMA over Converged Ethernet).
:
. "" . 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 . .
FIO , .
DBaaS Microsoft SQL . 4 200 000 IOPS 1 100% 4k.
Windows Server 2019 Storage Spaces Direct. !