El año pasado, asumimos activamente el rendimiento de bases de datos grandes y pesadas en nuestra nube. A primera vista, parecía que solo teníamos 2 opciones: sistemas de almacenamiento económicos con discos lentos o sistemas de almacenamiento muy costosos con discos rápidos.
Queríamos acelerar el trabajo de bases de datos Microsoft SQL altamente cargadas y al mismo tiempo ofrecer a nuestros clientes un costo favorable del servicio. Como resultado de las pruebas, hemos ensamblado la solución " Cluster para bases de datos Microsoft SQL cargadas en la nube ". Hoy echaremos un vistazo al interior y agregaremos un poco más de introducción técnica y números específicos.
La publicación no pretende ser un análisis profundo y no revela todos los matices técnicos, sino que solo demuestra los resultados de nuestras pruebas. Le mostraré en qué hardware, software y configuración de red ejecutamos las pruebas de rendimiento de la base de datos, cómo la probamos y qué resultados obtuvimos.
Condiciones problemáticas: cómo comprobar el rendimiento de la base de datos
Cómo se eligió el hardware para el clúster . Al principio, buscamos servidores con las siguientes características:
- 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. !