Il 5 dicembre 2017, Microsoft ha annunciato che stavano utilizzando processori AMD EPYC 7551 nelle loro macchine virtuali della serie Lv2 ottimizzate per l'archiviazione. Da allora, Microsoft ha cambiato la denominazione di questa serie in Lsv2. Queste macchine virtuali non sono disponibili in tutte le aree, quindi ti consigliamo di verificare la disponibilità nell'area di Azure che ti interessa usare. I dettagli sui prezzi per la regione degli Stati Uniti orientali sono qui, a titolo di esempio. Questi processori AMD EPYC presentano numerosi vantaggi per i carichi di lavoro di SQL Server, come spiegherò in questo articolo.
Dettagli AMD EPYC 7551
Questo processore AMD EPYC 7551 di prima generazione a 14 nm ha 32 core e 64 thread e funziona in server a uno o due socket. Questo processore ha una velocità di clock di base di 2,0 GHz, con una velocità di boost all-core di 2,55 GHz e una velocità di clock massima di 3,0 GHz. La dimensione della cache L3 è 64 MB.
Come tutti i processori AMD EPYC serie 7000, questa particolare SKU supporta 128 linee PCIe 3.0 per la connettività I/O. Dispone inoltre di otto canali di memoria che supportano la memoria DDR4-2666, che ha una larghezza di banda di memoria di picco di 341 GB/secondo in un server a due socket. Con questo processore, puoi avere 2 TB di RAM per socket con DIMM da 64 GB. Man mano che le DIMM DDR4 da 128 GB diventano sempre più ampiamente disponibili, la capacità totale raddoppierà.
Il processore AMD EPYC 7551 ha prestazioni della CPU single-thread leggermente inferiori rispetto ai vecchi processori Intel Xeon E5-2673 v4 (Broadwell) a 2,3 GHz e Intel Xeon E5-2673 v3 (Haswell) a 2,4 GHz che Microsoft utilizza per molti dei loro Serie di macchine virtuali di Azure. Entrambi questi processori Intel sono modelli speciali su misura che non si trovano nel database Intel ARK. In questo articolo ho scritto sull'utilizzo di CPU-Z per confrontare il processore Intel Xeon E5-2673 v3 in una macchina virtuale di Azure.
La vecchia serie Intel Xeon E5-26xx v3 (Haswell), introdotta nel terzo trimestre del 2014, aveva una larghezza di banda di memoria massima di 2133 MHz. La serie Intel Xeon E5-26xx v4 (Broadwell) leggermente più recente, introdotta nel primo trimestre del 2016, l'ha aumentata a 2400 MHz. Entrambe queste famiglie di processori hanno solo quattro canali di memoria, con una capacità massima di 768 GB per socket con DIMM DDR4 da 32 GB. Hanno anche solo 40 corsie PCIe 3.0 per processore.
Il risultato di tutto questo è che questo processore AMD EPYC 7551 ha prestazioni CPU single-thread sufficientemente buone, insieme a migliori prestazioni di memoria, densità di memoria e capacità I/O totale rispetto a quei due processori Intel. Ciò lo rende una buona scelta per molti carichi di lavoro di SQL Server, in particolare i carichi di lavoro DW.
Figura 1:risultati del benchmark CPU-Z per LS16v2
Ovviamente, se dovessi acquistare un server basato su AMD per l'uso in locale di SQL Server in questo momento, proverei a ottenere il processore AMD EPYC 7371 più recente e ottimizzato per la frequenza. Il processore AMD EPYC 7371 ha 32 core e 64 thread e funziona in server a uno o due socket. Questo processore ha una velocità di clock di base di 3,1 GHz, con una velocità di boost all-core di 3,6 GHz e una velocità di clock di boost massima di 3,8 GHz. La dimensione della cache L3 è 64 MB. ServeTheHome ha scritto di quale "valore folle" è questo processore qui.
Dettagli Azure Lsv2
Queste istanze di VM di Azure Lsv2 usano server Microsoft Project Olympus a due socket, Open Compute Platform (OCP), insieme ai processori AMD EPYC 7551 standard.
Figura 2:Microsoft Project Olympus
Le specifiche principali per le macchine virtuali della serie Lsv2 sono mostrate nella Tabella 1. Sono dotate di storage NVMe locale a bassa latenza che può sfruttare direttamente le 128 corsie PCIe 3.0 per socket disponibili nella macchina host con il processore AMD EPYC 7551.
Dimensione VM | vCPU | Memoria (GiB) | SSD locale |
---|---|---|---|
L8s v2 | 8 | 64 | 1 SSD NVMe da 1,9 TB |
L16s v2 | 16 | 128 | 2 SSD NVMe da 1,9 TB |
L32s v2 | 32 | 256 | 4 SSD NVMe da 1,9 TB |
L64s v2 | 64 | 512 | 8 SSD NVMe da 1,9 TB |
L80s v2 | 80 | 640 | 10 SSD NVMe da 1,9 TB |
Tabella 1:specifiche delle macchine virtuali di Azure serie Lsv2
Miglioramenti al disco gestito di macchine virtuali di Azure
I dischi gestiti di Azure sono essenzialmente dischi logici che in realtà sono dischi rigidi virtuali (VHD) che puoi usare con qualsiasi macchina virtuale di Azure, indipendentemente dalle dimensioni della macchina virtuale. Microsoft gestisce per te la gestione dell'account di archiviazione quando usi i dischi gestiti di Azure. Ciò ti dà la possibilità di aggiungere più capacità e prestazioni di archiviazione senza dover eseguire l'aggiornamento a una macchina virtuale di Azure più grande.
Il 25 marzo 2019, Microsoft ha annunciato la disponibilità di dischi gestiti con prestazioni più elevate e capacità maggiore per le macchine virtuali di Azure. Con queste nuove offerte, la dimensione massima di un singolo disco gestito arriva fino a 32 TB. In precedenza, eri limitato a una dimensione di 4 TB per un singolo disco gestito. Puoi scegliere tra dischi gestiti HDD standard, dischi SSD standard e dischi SSD Premium (con dischi gestiti Ultra Disk da 64 TB in uno stato di anteprima).
Con i dischi gestiti SSD Premium, le prestazioni passano da 7.500 IOPS a 20.000 IOPS e da 250 MB/sec a 900 MB/sec per prestazioni sequenziali. Questo livello di prestazioni è paragonabile abbastanza bene a molti sistemi locali tipici, sebbene sia ancora abbastanza facile avere prestazioni di archiviazione molto più elevate con un sottosistema di archiviazione locale accuratamente progettato. D'altra parte, le prestazioni della CPU e dell'archiviazione delle macchine virtuali di Azure hanno fatto molta strada da quando ne ho scritto nel 2014!
Impatto su SQL Server
Questi sviluppi sono un grosso problema per l'utilizzo di SQL Server nelle macchine virtuali di Azure. Storicamente, un punto debole delle macchine virtuali di Azure dal punto di vista di SQL Server erano le prestazioni di archiviazione relativamente basse che era possibile ottenere, soprattutto con dimensioni di macchine virtuali inferiori. Le attività di SQL Server che richiedevano buone prestazioni di I/O sequenziale erano spesso impegnative nelle macchine virtuali di Azure. Ho anche visto un certo numero di clienti che sono stati praticamente costretti a utilizzare la funzione di durabilità ritardata su alcuni database per evitare attese LOGWRITE elevate.
Un altro problema era che molte scelte della serie di macchine virtuali di Azure non erano adeguatamente bilanciate per l'utilizzo di SQL Server, poiché obbligavano a un numero di core molto elevato per ottenere una grande capacità di memoria nella macchina virtuale. Ciò ha fatto aumentare sia i costi di licenza di SQL Server che i costi orari delle VM di Azure.
Conclusione
L'uso di un moderno processore AMD EPYC nella serie di macchine virtuali di Azure Lsv2 ottimizzata per l'archiviazione offre una piattaforma bilanciata e ad alte prestazioni per l'utilizzo di SQL Server. Quello che intendo per piattaforma bilanciata proviene dal programma Microsoft Data Warehouse Fast Track, in cui è possibile progettare e configurare un sistema in modo che i dati fluiscano dal sottosistema di archiviazione al sottosistema di memoria per essere consumati dai core del processore dove non c'erano colli di bottiglia non necessari nel sistema.
In questo caso, hai buone prestazioni della CPU single-thread, combinate con un'elevata larghezza di banda della memoria e una larghezza di banda di archiviazione molto elevata. Avere più SSD NVMe locali a bassa latenza collegati a quelle corsie PCIe ti darà eccellenti prestazioni di archiviazione. Puoi anche aggiungere ulteriore capacità di archiviazione ad alte prestazioni con i nuovi dischi gestiti di Azure con dischi SSD Premium, che ti offriranno ulteriore flessibilità in termini di capacità di archiviazione e prestazioni.