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

Seleção prática de processador para cargas de trabalho OLTP do SQL Server 2014/2016

Provavelmente não é a CPU que você está procurando.
Imagine que você acabou de obter a aprovação do gerenciamento para um novo servidor de banco de dados local que executará uma carga de trabalho OLTP de missão crítica com o SQL Server 2014 Enterprise Edition em execução no Windows Server 2012 R2 Standard Edition. Este novo servidor substituirá um servidor Dell PowerEdge R910 legado que executa o SQL Server 2008 R2 Enterprise Edition no Windows Server 2008 R2 Enterprise Edition. Este servidor existente possui quatro processadores Intel Xeon X7560 Nehalem-EX de 45 nm (oferecendo 32 núcleos físicos no sistema) e possui 512 GB de RAM, que era uma configuração premium quando foi comprado em 2010.

Para este exemplo, você tem um orçamento de licença de hardware e software um tanto limitado disponível para a atualização da plataforma. Você deseja migrar para o SQL Server 2014 Enterprise Edition, em um novo servidor com desempenho de CPU single-thread muito melhor (já que você tem uma carga de trabalho OLTP) e maior capacidade geral de CPU, enquanto ainda minimiza os custos de hardware e licença do SQL Server.

Dadas essas informações, como você decidiria qual modelo de servidor escolher e qual processador exato selecionar? Você deixaria alguém na T.I. departamento toma essas decisões, ou você se envolveria no processo de avaliação e tomada de decisão? Em vez de deixar "Shon the server guy" decidir, quero mostrar a você um método fácil e prático para descobrir isso, usando pontuações de benchmark TPC-E, alguma aritmética simples e algum senso comum.

O primeiro passo é verificar as pontuações dos resultados do benchmark TPC-E online, procurando o sistema equivalente mais próximo ao seu sistema existente. Se você tiver sorte, encontrará um envio de benchmark oficial que corresponde exatamente ao seu sistema. No nosso caso, encontrei um envio de 10 de abril de 2010 que coincide exatamente com nosso sistema legado. Este sistema Dell PowerEdge R910 tinha uma pontuação real de taxa de transferência TPC-E de 1.933,96, com quatro processadores Intel Xeon X7560 de oito núcleos. A pontuação real do TPC-E Throughput é uma boa medida da capacidade geral da CPU do sistema, fornecendo uma indicação aproximada de quantas consultas simultâneas ele pode manipular (supondo que você não tenha gargalos relacionados ao armazenamento ou à memória).

A segunda etapa é obter a pontuação real do TPC-E Throughput para este sistema e dividi-la pelo número de núcleos de processador físico no sistema, para ter uma ideia do desempenho do processador single-thread para o processador específico no sistema testado. . Para este sistema, simplesmente dividiríamos 1.933,96 por 32 núcleos físicos, para chegar a uma "pontuação por núcleo" de 60,44. O Intel Xeon X7560 tem uma velocidade de clock base de 2,26 GHz, com uma velocidade de clock Turbo de 2,66 GHz. Ele possui um cache L3 compartilhado de 24 MB e uma velocidade Intel QPI de 6,4 GT/s. Quick Path Interconnect (QPI) é uma interconexão ponto a ponto entre a CPU e o controlador de memória integrado, portanto, ter velocidades QPI mais altas significa acesso mais rápido à memória.

A terceira etapa é procurar resultados de benchmark TPC-E para sistemas e processadores de geração atual, tentando encontrar um resultado para um sistema que seja aproximadamente equivalente ao tipo de novo sistema que você está considerando. Infelizmente, isso às vezes será difícil porque os fornecedores de servidores não enviaram tantos sistemas novos quanto costumavam e porque sempre enviam sistemas que usam o processador "flagship", com maior contagem de núcleos para uma determinada geração e família de processadores. Isso aumenta a pontuação real de taxa de transferência do TPC-E, mas também torna um sistema que usa esse processador muito mais caro para licenciar para o SQL Server devido às contagens de núcleos mais altas. Outro problema com esses modelos de processador "principais" é que eles normalmente trocam contagens de núcleos físicos mais altos por velocidades de clock base mais baixas, então você acaba pagando custos de licenciamento muito mais altos e, na verdade, obtendo menor desempenho de CPU de thread único.

A sabedoria convencional seria que você desejaria um novo servidor de quatro soquetes para substituir seu servidor de quatro soquetes existente. Com servidores modernos de dois soquetes, isso pode não ser mais necessário, dependendo da magnitude de sua carga de trabalho. Houve um período, do início de 2012 ao início de 2014, em que os novos processadores de servidor da família Xeon E5 de dois soquetes eram muito mais rápidos para desempenho de thread único do que os novos processadores de servidor da família Xeon E7 de quatro soquetes. Essa diferença de desempenho diminuiu bastante quando a família Xeon E7 v2 Ivy Bridge-EX foi lançada no início de 2014. Desde então, as famílias E5 e E7 estão ainda mais próximas, já que ambas estão usando a microarquitetura Haswell.

Dada essa paridade de desempenho de CPU próxima, sua escolha de modelo de servidor se resume à memória geral, CPU e capacidade de E/S. Os servidores atuais de dois soquetes estão praticamente limitados a 768 GB de RAM com DIMMs de 32 GB, enquanto os servidores atuais de quatro soquetes podem ter 3 TB de RAM com DIMMs de 32 GB. A maioria dos clientes que encontro pode executar confortavelmente sua carga de trabalho em 768 GB de RAM, mas alguns realmente precisam de mais do que isso. Os servidores de dois e quatro soquetes podem usar processadores Haswell com 18 núcleos físicos cada, portanto, você tem um limite de 36 ou 72 núcleos físicos em seu sistema, dependendo da contagem de soquetes.

Para este exercício, há um resultado de benchmark TPC-E para um sistema Fujitsu Primergy RX2540 M1 de dois soquetes com uma pontuação real de taxa de transferência TPC-E de 3.772,08, usando dois processadores Haswell-EP de dezoito núcleos Intel Xeon E5-2699 v3 e 512 GB de RAM. O processador Xeon E5-2699 v3 tem uma velocidade de clock base de 2,3 GHz, com uma velocidade de clock Turbo de 3,6 GHz. Ele possui um cache L3 compartilhado de 45 MB e uma velocidade Intel QPI de 9,6 GT/s. Para este sistema, dividiríamos a pontuação real de 3.772,08 por 36 núcleos físicos, para obter uma "pontuação por núcleo" de 104,78.

Esse novo sistema de dois soquetes teria quase o dobro da capacidade geral de CPU do sistema legado, com cerca de 1,57 vezes o desempenho de thread único. De uma perspectiva de capacidade de CPU e desempenho de thread único, eu estaria bastante confiante de que esse novo sistema de dois soquetes seria um bom substituto para o sistema legado. Esse novo sistema também teria slots de expansão PCIe 3.0, portanto, terá mais capacidade total de E/S do que o sistema antigo. Infelizmente, ele possui 36 núcleos físicos que exigirão licenças do SQL Server 2014 Enterprise Edition, o que será bastante caro.

Uma melhor escolha de processador pode ser o Intel Xeon E5-2667 v3, que possui oito núcleos físicos, com clock base de 3,2 GHz, clock Turbo de 3,6 GHz, cache L3 compartilhado de 20 MB e processador Intel de 9,6 GT/s. velocidade QPI. Usando alguma aritmética simples, podemos ajustar as diferenças entre o Xeon E5-2699 v3 e o Xeon E5-2667 v3 (já que ambos são da mesma geração e família de processadores).

Primeiro, eu ajusto a diferença na contagem de núcleos físicos. Se você dividir 8 por 18, o resultado é 0,44, então você multiplica 3.772,08 vezes 0,44, temos um resultado de 1.676,48. Em seguida, temos que ajustar a diferença na velocidade de clock base entre esses dois processadores. O E5-2667 v3 tem uma velocidade de clock base 39% maior do que o processador E5-2699 v3, então multiplicaríamos 1.676,48 vezes 1,39 para obter uma estimativa final Pontuação TPC-E de 2330,31. Se dividirmos essa pontuação estimada por 16 núcleos físicos, obteremos um resultado de "pontuação por núcleo" de 145,64.

Portanto, de acordo com esse cálculo, ainda teríamos mais capacidade geral de CPU do que o sistema legado e desempenho de CPU de thread único muito melhor usando a contagem de núcleos mais baixa, processador Xeon E5-2667 v3 "otimizado para frequência" no novo dois soquetes sistema. O bônus final dessa escolha de processador são os custos de licenciamento do SQL Server 2014 muito menores, pois precisaríamos apenas de 16 licenças principais em vez de 36 licenças principais, o que representa uma economia de cerca de US$ 136.000,00.

Felizmente, é um pouco mais claro como você pode fazer algumas análises simples para ajudá-lo a decidir o processador exato que você deve escolher para um novo servidor de banco de dados, dadas suas restrições de carga de trabalho e orçamento. Essa análise é um pouco mais complicada quando você tem que comparar processadores de gerações e famílias diferentes, mas os mesmos princípios básicos podem ser usados. Vou mergulhar mais fundo neste assunto em um artigo futuro.