Em 5 de dezembro de 2017, a Microsoft anunciou que estava usando processadores AMD EPYC 7551 em suas máquinas virtuais Lv2-Series otimizadas para armazenamento. Desde então, a Microsoft mudou o nome desta série para Lsv2. Essas VMs não estão disponíveis em todas as regiões, portanto, convém verificar a disponibilidade na região do Azure que você está interessado em usar. Os detalhes de preços para a região leste dos EUA estão aqui, como exemplo. Esses processadores AMD EPYC têm várias vantagens para cargas de trabalho do SQL Server, conforme explicarei neste artigo.
Detalhes do AMD EPYC 7551
Este processador AMD EPYC 7551 de primeira geração de 14nm possui 32 núcleos e 64 threads e funciona em servidores de um ou dois soquetes. Este processador tem uma velocidade de clock base de 2,0 GHz, com uma velocidade de aumento de todos os núcleos de 2,55 GHz e uma velocidade de clock máxima de 3,0 GHz. O tamanho do cache L3 é de 64 MB.
Como todos os processadores da série AMD EPYC 7000, esse SKU específico oferece suporte a 128 pistas PCIe 3.0 para conectividade de E/S. Ele também possui oito canais de memória que suportam memória DDR4-2666, que tem uma largura de banda máxima de memória de 341 GB/segundo em um servidor de dois soquetes. Com este processador, você pode ter 2 TB de RAM por soquete com DIMMs de 64 GB. À medida que os DIMMs DDR4 de 128 GB se tornarem mais amplamente disponíveis, a capacidade total dobrará.
O processador AMD EPYC 7551 tem desempenho de CPU single-thread um pouco menor quando comparado aos processadores Intel Xeon E5-2673 v4 (Broadwell) de 2,3 GHz mais antigos e Intel Xeon E5-2673 v3 (Haswell) de 2,4 GHz que a Microsoft usa para muitos de seus Série de VMs do Azure. Ambos os processadores Intel são modelos especiais sob medida que não estão no banco de dados Intel ARK. Eu escrevi sobre o uso de CPU-Z para comparar o processador Intel Xeon E5-2673 v3 em uma VM do Azure neste artigo.
A série Intel Xeon E5-26xx v3 (Haswell) mais antiga, lançada no terceiro trimestre de 2014, tinha uma largura de banda máxima de memória de 2133MHz. A série Intel Xeon E5-26xx v4 (Broadwell), um pouco mais recente, que foi introduzida no primeiro trimestre de 2016, aumentou para 2400MHz. Ambas as famílias de processadores possuem apenas quatro canais de memória, com capacidade máxima de 768 GB por soquete com DIMMs DDR4 de 32 GB. Eles também têm apenas 40 pistas PCIe 3.0 por processador.
A vantagem de tudo isso é que este processador AMD EPYC 7551 tem desempenho de CPU de thread único bom o suficiente, juntamente com melhor desempenho de memória, densidade de memória e capacidade total de E/S em comparação com esses dois processadores Intel. Isso o torna uma boa opção para muitas cargas de trabalho do SQL Server, especialmente cargas de trabalho DW.
Figura 1:resultados de benchmark CPU-Z para LS16v2
É claro que, se eu estivesse comprando um servidor baseado em AMD para uso local do SQL Server agora, tentaria obter o processador AMD EPYC 7371 mais recente e otimizado para frequência. O processador AMD EPYC 7371 possui 32 núcleos e 64 threads e funciona em servidores de um ou dois soquetes. Este processador tem uma velocidade de clock base de 3,1 GHz, com uma velocidade de aumento de todos os núcleos de 3,6 GHz e uma velocidade de clock máxima de 3,8 GHz. O tamanho do cache L3 é de 64 MB. ServeTheHome escreveu sobre o “valor insano” deste processador aqui.
Detalhes do Lsv2 do Azure
Essas instâncias do Azure VM Lsv2 estão usando servidores Microsoft Project Olympus de dois soquetes, Open Compute Platform (OCP), juntamente com os processadores AMD EPYC 7551 padrão.
Figura 2:Microsoft Project Olympus
As principais especificações para as máquinas virtuais da série Lsv2 são mostradas na Tabela 1. Elas apresentam armazenamento NVMe local de baixa latência que pode aproveitar diretamente as 128 pistas PCIe 3.0 por soquete disponíveis na máquina host com o processador AMD EPYC 7551.
Tamanho da VM | vCPUs | Memória (GiB) | SSD local |
---|---|---|---|
L8s v2 | 8 | 64 | 1 x SSD NVMe de 1,9 TB |
L16s v2 | 16 | 128 | 2 x SSD NVMe de 1,9 TB |
L32s v2 | 32 | 256 | 4 x SSD NVMe de 1,9 TB |
L64s v2 | 64 | 512 | 8 x SSD NVMe de 1,9 TB |
L80s v2 | 80 | 640 | 10 x SSD NVMe de 1,9 TB |
Tabela 1:Especificações de VM do Azure Série Lsv2
Melhorias no disco gerenciado da VM do Azure
Os discos gerenciados do Azure são essencialmente discos lógicos que são, na verdade, discos rígidos virtuais (VHD) que você pode usar com qualquer VM do Azure, independentemente do tamanho da VM. A Microsoft lida com o gerenciamento da conta de armazenamento para você quando você usa os Discos Gerenciados do Azure. Isso oferece a capacidade de adicionar mais capacidade e desempenho de armazenamento sem precisar atualizar para uma VM do Azure maior.
Em 25 de março de 2019, a Microsoft anunciou a disponibilidade de discos gerenciados de maior desempenho e maior capacidade para VMs do Azure. Com essas novas ofertas, o tamanho máximo de um único disco gerenciado chega a 32 TB. Anteriormente, você estava limitado a um tamanho de 4 TB para um único disco gerenciado. Você pode escolher entre discos gerenciados HDD padrão, discos SSD padrão e discos SSD Premium (com discos gerenciados Ultra Disk de 64 TB em um status de visualização).
Com discos gerenciados SSD Premium, o desempenho aumenta de 7.500 IOPS para 20.000 IOPS e de 250 MB/s para 900 MB/s para desempenho sequencial. Esse nível de desempenho se compara muito bem a muitos sistemas locais típicos, embora ainda seja muito fácil ter um desempenho de armazenamento muito mais alto com um subsistema de armazenamento local cuidadosamente projetado. Por outro lado, o desempenho de armazenamento e CPU da VM do Azure percorreu um longo caminho desde que escrevi sobre isso em 2014!
Impacto do SQL Server
Esses desenvolvimentos são importantes para o uso do SQL Server em VMs do Azure. Historicamente, um ponto fraco das VMs do Azure de uma perspectiva do SQL Server era o desempenho de armazenamento relativamente baixo que você poderia alcançar, especialmente com tamanhos de VM menores. As tarefas do SQL Server que exigiam um bom desempenho de E/S sequencial eram muitas vezes desafiadoras em VMs do Azure. Também vi vários clientes que foram praticamente forçados a usar o recurso Delayed Durability em alguns bancos de dados para evitar altas esperas de LOGWRITE.
Outro problema foi que muitas opções da série de VMs do Azure não foram balanceadas adequadamente para o uso do SQL Server, porque forçaram você a ter contagens de núcleos muito altas para obter grande capacidade de memória em sua VM. Isso aumentou os custos de licenciamento do SQL Server e os custos de VM do Azure por hora.
Conclusão
O uso de um processador AMD EPYC moderno na série Lsv2 Azure VM otimizada para armazenamento oferece uma plataforma balanceada e de alto desempenho para uso do SQL Server. O que quero dizer com plataforma balanceada vem do programa Microsoft Data Warehouse Fast Track, onde um sistema pode ser projetado e configurado para que os dados fluam do subsistema de armazenamento para o subsistema de memória para serem consumidos pelos núcleos do processador onde não houvesse gargalos desnecessários no sistema.
Nesse caso, você tem um bom desempenho de CPU de thread único, combinado com alta largura de banda de memória e largura de banda de armazenamento muito alta. Ter vários SSDs NVMe locais de baixa latência conectados a essas pistas PCIe proporcionará excelente desempenho de armazenamento. Você também pode adicionar capacidade de armazenamento adicional de alto desempenho com os discos gerenciados do Azure recentemente aprimorados com discos SSD Premium, o que lhe dará flexibilidade adicional para capacidade de armazenamento e desempenho.