Database
 sql >> Base de Dados >  >> RDS >> Database

Comparando o desempenho da VM do Windows Azure, Parte 1


A menos que você esteja fazendo um esforço conjunto para ignorá-lo, você pode ter ouvido que a Microsoft realmente gostaria de mover grande parte de sua infraestrutura de banco de dados do SQL Server para um data center da Microsoft, seja para um Banco de Dados SQL do Azure (que discuti recentemente aqui) ou se você o hospeda em uma Máquina Virtual do Windows Azure. A Microsoft chama essas máquinas virtuais persistentes de instâncias de computação , e eles têm duas camadas principais para escolher, que incluem a Camada de Computação Básica e a Camada de Computação Padrão. Eles descrevem esses dois níveis como:

Nível de computação básico :esse novo nível de instâncias de computação é semelhante em configuração ao nível Standard com preços mais baixos. Essas instâncias não incluem balanceador de carga e escalonamento automático. Eles são adequados para aplicativos de produção de instância única, cargas de trabalho de desenvolvimento, servidores de teste e aplicativos de processamento em lote que podem não exigir esses recursos. A camada de computação básica está atualmente disponível apenas para as instâncias de uso geral. Essas instâncias variam de Basic A0 a Basic A4.

Nível de computação padrão :essa camada de instâncias de computação fornece um conjunto ideal de recursos de computação, memória e E/S para executar uma ampla variedade de aplicativos. Essas instâncias incluem recursos de dimensionamento automático e balanceamento de carga sem custo adicional. A camada de computação padrão está disponível em instâncias de uso geral, memória intensiva e computação intensiva. Essas instâncias variam do padrão A0 ao padrão A7.

Há várias vantagens importantes em hospedar sua infraestrutura do SQL Server em uma máquina virtual do Windows Azure. Primeiro, você não tem custos de capital para armazenamento ou hardware, nem manutenção contínua do armazenamento ou hardware. Em segundo lugar, você não tem custos de licença de SO ou SQL Server (quando você usa uma imagem SQL da galeria padrão de VMs do Azure). Terceiro, você pode criar uma nova VM do Azure que já tenha o SQL Server instalado em alguns minutos (mesmo que possa demorar um pouco mais para configurar completamente o sistema operacional e a instância do SQL Server de acordo com seus requisitos exatos). No futuro, ainda será sua responsabilidade instalar as atualizações do Windows e do SQL Server, mas você não precisará se preocupar com coisas como atualizações de firmware, BIOS ou driver.

Se você quiser usar as Máquinas Virtuais do Windows Azure para hospedar toda ou parte de sua infraestrutura do SQL Server, você deve estar ciente dos detalhes de preços atuais que estão disponíveis para o data center específico do Azure que você deseja hospedar suas máquinas virtuais, pois os preços podem variam entre os diferentes data centers da Microsoft. Atualmente, a Microsoft tem 13 tamanhos diferentes de máquinas virtuais do Windows Azure, conforme detalhado na página Virtual Machine and Cloud Service Sizes for Azure. A Microsoft reduziu o preço por hora para as instâncias com uso intensivo de memória (Padrão A5, Padrão A6 e Padrão A7) em 18% na maioria de seus data centers em 1º de maio de 2014, e o preço mostrado na Tabela 1 reflete esses novos preços mais baixos.

A pontuação de núcleo único e a pontuação de vários núcleos nas duas colunas à direita da Tabela 1 são as pontuações médias que observei usando a versão de 32 bits do processador Geekbench 3.05 e benchmark de memória em um exemplo do Windows Server 2012 R2 Datacenter VM no Data Center do Leste dos EUA. Essas pontuações podem ou não ser representativas do que você verá.
Tamanho da VM Núcleos de CPU Memória (GB) Custo por hora Custo Mensal Pontuação de núcleo único Pontuação multinúcleo
A0 básico 1 (compartilhado) 0,75 $0,018 ~$14 507 498
Básico A1 1 1,75 $0,074 ~$56 679 670
Básico A2 2 3,50 $0,148 ~$111 709 1.358
A3 básico 4 7,00 $0,296 ~$221 717 2.472
A4 básico 8 14h00 $0,592 ~$441 724 4.042
Padrão A0 1 (compartilhado) 0,75 $0,020 ~$15 492 502
Padrão A1 1 1,75 $0,090 ~$67 1.068 1.083
Padrão A2 2 3,50 $0,180 ~$134 1.069 2.002
Padrão A3 4 7,00 $0,360 ~$268 1.070 3.593
A4 padrão 8 14h00 $0,720 ~$536 1.094 6.446
Padrão A5 2 14h00 $0,330 ~$246 1.080 2.026
Padrão A6 4 28,00 $0,660 ~$492 1.080 3.686
Padrão A7 8 56,00 $1.320 ~$983 1.056 6.185

Tabela 1:Especificações de máquina virtual selecionadas para Windows Azure no data center do leste dos EUA

Atualmente, a Microsoft possui nove data centers que podem hospedar novas máquinas virtuais persistentes, que incluem Leste dos EUA, Oeste dos EUA, Brasil Sul (versão prévia), Norte da Europa, Oeste da Europa, Leste Asiático, Sudeste Asiático, Japão Oeste e Japão Leste. De acordo com a Microsoft, "A1 é o menor tamanho recomendado para cargas de trabalho de produção" e você deve selecionar "uma máquina virtual com 4 ou 8 núcleos de CPU ao usar o SQL Server Enterprise Edition". Uma referência útil, embora um tanto datada, para executar o SQL Server em uma máquina virtual do Windows Azure é a Orientação de Desempenho para SQL Server em Máquinas Virtuais do Windows Azure que foi publicada em junho de 2013.

Características da máquina virtual do Windows Azure


Ao observar as propriedades da CPU na guia Desempenho no Gerenciador de Tarefas do Windows Server 2012 R2 (na Figura 1 e na Figura 2), você notará que ele informa que está usando um processador AMD Opteron 4171 HE de 45nm relativamente antigo, executado em velocidade de 2,1 GHz. Este processador de seis núcleos em particular foi introduzido em junho de 2010, como parte da família Lisbon de dois soquetes. O sufixo HE significa que é um modelo de baixo consumo de energia que não é uma boa opção para o uso do SQL Server, pois oferece uma quantidade significativa de desempenho para uma quantidade relativamente pequena de uso reduzido de energia. Depois de fazer algumas pesquisas, me disseram que este processador é um processador OEM especial para data centers da Microsoft.


Figura 1:máquina virtual A0 básica em dados do leste dos EUA Centro


Figura 2:máquina virtual A7 padrão nos dados do leste dos EUA Centro

O outro grande problema com este processador, além de sua idade e desempenho de thread único relativamente fraco, é o fato de ter apenas seis núcleos físicos. Este é um problema com os tamanhos de VM Basic A4, Standard A4 e Standard A7, que têm dois nós NUMA e oito núcleos físicos totais. Isso significaria que uma VM desse tamanho cruzaria um nó NUMA no host físico subjacente, o que não é uma boa ideia para o desempenho da memória. Tenho dificuldade em acreditar que a Microsoft faria isso de propósito. Também tenho dificuldade em acreditar que todas as VMs do Azure em todos os data centers que experimentei até agora estão usando exatamente o mesmo processador AMD antigo. É do conhecimento geral que a Microsoft tem pelo menos três gerações diferentes de hardware (Gen 1, Gen 2 e Gen 3) que eles usaram até agora em seus data centers do Azure, oferecendo desempenho de VM diferente. Após mais algumas perguntas, descobri que este processador AMD Opteron 4171 HE é um processador Azure Gen 2.

Você pode navegar no banco de dados online do Geekbench 3 de resultados de benchmarks carregados, procurando sistemas usando o processador AMD Opteron 4171 HE aqui. Você pode notar que cada resultado para este processador parece ser para uma máquina virtual da Microsoft, o que também é bastante curioso. O Gerenciador de Tarefas do Windows Server 2012 R2 está relatando o cache L1 como “N/A” e nem mesmo listando os tamanhos de cache L2 e L3 nessas VMs do Azure. Outra evidência curiosa é o fato de que as Instâncias Padrão têm pontuações Geekbench 3 cerca de 50% mais altas do que as Instâncias Básicas equivalentes quando têm exatamente as mesmas contagens totais de núcleos de processador e tamanhos de memória, tanto para a pontuação Single-Core quanto para Multi-Core pontuação. Essa variação não faz sentido se a máquina host subjacente estiver realmente usando o mesmo processador.

Resumo


Todas essas evidências inicialmente me levaram à conclusão de que a Microsoft provavelmente estava obscurecendo o processador real na máquina host. Achei que eles poderiam estar fazendo isso para tentar impedir que as pessoas provisionassem propositalmente várias VMs até que uma VM estivesse sendo executada em um hardware de host mais novo e mais rápido. Acontece que a Microsoft não é tão inteligente. Tenho certeza de que a Microsoft não altera a identidade da CPU em uma VM do Azure. Existem processadores do Azure Gen 3 mais recentes que você pode obter em uma VM do Azure, à medida que você provisiona novas VMs no futuro. Outro possível motivo para meus resultados foi que eles provavelmente estão usando algum tipo de governança para limitar o desempenho da VM a um nível confiável e uniforme, independentemente do hardware do host subjacente, para que possam hospedar mais VMs em menos hardware ao longo do tempo. Este seria um curso de ação inteligente para um hoster IaaS.

As pontuações relativamente baixas do Geekbench 3.05 (consulte a Figura 3) até mesmo para as maiores VMs do Azure significam que você está abrindo mão de uma quantidade significativa de desempenho de processador e memória em comparação com um servidor físico de dois soquetes equivalente com o mesmo número de núcleos de processador e memória.


Figura 3:Resultados do Geekbench 3.05 de 32 bits para o padrão Máquina virtual A4 no data center do leste dos EUA

Muitas cargas de trabalho do SQL Server funcionarão perfeitamente bem com esse nível de desempenho de VM, embora um pouco mais lento do que você pode estar acostumado. Se você considerar as economias de licença do SQL Server 2014 Enterprise Edition de uma máquina de oito núcleos, além do capex para um servidor modesto de dois soquetes e seu armazenamento associado, você poderá executar uma máquina virtual A7 padrão 24 horas por dia, 7 dias por semana por cerca de cinco a seis anos. Dado esse tipo de ROI, posso ver muitas organizações tomando a decisão econômica de migrar pelo menos uma parte de sua infraestrutura do SQL Server para as Máquinas Virtuais do Azure. Contanto que sua carga de trabalho possa ser executada em uma VM de 56 GB ou menor, e contanto que tenha menos desempenho de CPU e memória do que um laptop vintage recente típico também é aceitável, esse é um curso de ação racional. A Microsoft anunciou recentemente a disponibilidade de instâncias de computação intensiva de VM A8 e A9 maiores e muito mais rápidas, que usam processadores Intel Xeon E5-2670. Esta será uma grande melhoria no desempenho em relação aos processadores Azure Gen 2.

Darei uma olhada no desempenho de E/S nas Máquinas Virtuais do Azure em um próximo artigo.