Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Selecionando e configurando hardware para SQL Server 2016 Standard Edition


Desde o lançamento do SQL Server 2016 Service Pack 1 em 16 de novembro de 2016, com muitos recursos úteis relacionados à programação que antes estavam disponíveis apenas na Enterprise Edition, tornou-se muito mais viável para muitas organizações optarem propositalmente por usar o SQL Server 2016 Standard Edition do que era no passado.

Se você está pensando em fazer isso, precisa estar ciente de alguns problemas e armadilhas comuns que podem ocorrer ao instalar e usar o SQL Server 2016 Standard Edition em um novo servidor com hardware moderno.

Limites e configuração de memória


O primeiro problema são os limites de licenciamento por instância para o SQL Server 2016 Standard Edition. O primeiro limite de licença é a quantidade de memória que você pode usar para o pool de buffers para cada instância do SQL Server 2016 Standard Edition, que é de apenas 128 GB, assim como no SQL Server 2014 Standard Edition. Pessoalmente, acho que esse limite é artificialmente baixo, dada a densidade de memória dos servidores modernos de dois soquetes, mas é um limite com o qual devemos lidar.

Os servidores atuais de dois soquetes que usam os processadores da família de produtos Intel Xeon E5-2600 v4 podem usar até 12 DIMMs por processador, enquanto os DIMMs DDR4 ECC de 32 GB são a capacidade mais alta e também acessíveis por GB. Cada servidor com esta família de processadores possui 4 canais de memória por processador, com cada canal suportando até 3 DIMMs. Um servidor de dois soquetes totalmente preenchido com vinte e quatro DIMMs de 32 GB teria 768 GB de RAM, o que é muito mais do que uma única instância do SQL Server 2016 Standard Edition pode usar.

Como o SQL Server 2016 Standard Edition tem um limite de memória por instância tão baixo, você deve escolher propositalmente uma configuração de memória apropriada que permita usar toda a memória com limite de licença e, ao mesmo tempo, obter o melhor desempenho de memória possível. Preencher apenas um DIMM por canal de memória fornecerá o melhor desempenho de memória absoluto suportado pelo(s) seu(s) processador(es).

Os principais fornecedores de servidores, como a Dell, oferecem orientações detalhadas sobre as possíveis configurações de memória para seus servidores, dependendo do número e do tipo específico de processador selecionado. Para o SQL Server 2016 Standard Edition em um servidor de dois soquetes com dois processadores da família Intel Xeon E5-2600 v4, escolher oito DIMMs DDR4 de 32 GB forneceria 256 GB de RAM, funcionando na velocidade máxima suportada de 2.400 MT/s.

Isso permitiria que você defina a memória máxima do servidor (para o pool de buffers) para 131.072 MB (128 GB) e ainda tenha bastante memória restante para o sistema operacional e para possível uso por índices columnstore e OLTP na memória. Você também teria dezesseis slots DIMM vazios que poderiam ser usados ​​para expansão de RAM futura (que você poderia aproveitar se fizesse um upgrade de edição subsequente para Enterprise Edition). Outro uso para alguns desses slots DIMM vazios seria para o “cache final do log” em NVDIMMs (com suporte no SQL Server 2016 Standard Edition com SP1).

Limites de licença do processador


O SQL Server 2016 Standard Edition também está limitado ao menor de quatro soquetes ou 24 núcleos de processador físico. Com as famílias de processadores atuais e futuras da Intel e AMD que terão até 32 núcleos físicos, é muito fácil exceder inadvertidamente o limite de núcleo do processador por instância, com várias consequências terríveis para o desempenho e os custos de licenciamento.

O primeiro efeito negativo de fazer isso é como o SQL Server 2016 Standard Edition alocará seus núcleos físicos de limite de licença disponíveis em seus nós NUMA. Por exemplo, se você tivesse um novo servidor de dois soquetes com dois processadores Intel Xeon E5-2697A v4 de 16 núcleos, por padrão, o SQL Server 2016 Standard Edition usaria dezesseis núcleos físicos no nó NUMA 0 e apenas oito núcleos no NUMA nó 1, que é uma configuração desequilibrada que não funcionará tão bem quanto poderia. Você pode corrigir esse problema com um comando ALTER SERVER CONFIGURATION conforme descrevo aqui.

Para adicionar insulto à injúria nesta situação, a Microsoft também espera que você compre licenças de núcleo para todos os 32 núcleos físicos na máquina, mesmo que você só tenha permissão para usar 24 núcleos físicos por instância. Isso seria um custo de licença adicional de aproximadamente US$ 15 mil, para licenças principais que você não poderia usar, a menos que decidisse executar várias instâncias na mesma máquina host. O custo de licença adicional pagaria por um servidor típico de dois soquetes, dependendo de como ele foi configurado.

Outra armadilha comum que você deve evitar com o Standard Edition é criar uma máquina virtual com mais de quatro soquetes. Se você fizer isso, o SQL Server Standard Edition usará apenas quatro soquetes devido ao limite de licença de soquete.

Seleção do processador


Atualmente, a família de processadores Intel Xeon mais moderna para servidores de dois soquetes é a família de produtos Intel Xeon E5-2600 v4 de 14 nm (Broadwell-EP) que foi lançada no primeiro trimestre de 2016. A Intel está prestes a lançar a próxima geração de 14 nm Intel Xeon E5-2600 v5 (Skylake-EP), que já está disponível no Google Cloud Platform. Meu palpite é que esses novos processadores (que exigirão novos servidores de modelo) estarão disponíveis publicamente no segundo trimestre de 2017.

Dado esse limite de licença de 24 núcleos físicos, é extremamente importante que você não selecione um processador que tenha mais de 12 núcleos físicos (se você planeja preencher os dois soquetes de um servidor de dois soquetes). Isso limita um pouco sua seleção de SKUs de processador, mas ainda há quatro ótimas opções disponíveis, conforme mostrado na Tabela 1.
Modelo Núcleos Est. Pontuação do sistema TPC-E Pontuação/Núcleo Físico Custo da licença
Xeon E5-2687W v4 24 3.673,00 153,04 US$ 44.592,00
Xeon E5-2667 v4 16 2.611,91 163,24 US$ 29.728,00
Xeon E5-2643 v4 12 2.081,36 173,44 US$ 22.296,00
Xeon E5-2637 v4 8 1.428,39 178,54 US$ 14.864,00

Tabela 1:Métricas comparativas do processador do sistema de dois soquetes

A Tabela 1 mostra o total de núcleos físicos, pontuação TPC-E estimada, pontuação TPC-E estimada/núcleo físico e custo total de licença do SQL Server 2016 Standard Edition para um sistema de dois soquetes, preenchido com dois dos processadores selecionados. Você pode notar que eu tenho um processador de doze núcleos, um processador de oito núcleos, um processador de seis núcleos e um processador de quatro núcleos, mas não há um processador de dez núcleos na Tabela 1. Isso ocorre por design, pois o três modelos de processadores de dez núcleos disponíveis são escolhas muito ruins para o SQL Server, por causa de suas velocidades de clock base muito baixas.

A pontuação TPC-E estimada para todo o sistema é uma medida da capacidade total da CPU do sistema, enquanto a pontuação/núcleo é uma medida do desempenho da CPU de thread único desse processador específico.

Resumo


Se você deseja o melhor desempenho possível com o menor custo de licenciamento de hardware e SQL Server para uma instância do SQL Server 2016 Standard Edition, deve escolher uma configuração de memória que use apenas um DIMM por canal de memória (ou seja, oito DIMMs no total em um sistema de dois soquetes com dois processadores da família Intel Xeon E5-2600 v4).

Você também deve escolher propositalmente um dos quatro processadores listados na Tabela 1. Qualquer outra escolha de processador é um erro potencialmente caro sob essa perspectiva.

Por fim, se você for usar o SQL Server 2016 Standard Edition, deverá investigar e testar se o Buffer Pool Extension (BPE) pode ajudar no desempenho de sua carga de trabalho. Dependendo de sua carga de trabalho, o armazenamento em cache da “cauda do log” em um NVDIMM também pode ser muito benéfico para o desempenho do log de transações.