Como a Microsoft renovou o modelo de licenciamento do SQL Server 2012, é especialmente importante fazer uma análise cuidadosa antes de decidir exatamente qual processador usar para um servidor de banco de dados que executará o SQL Server 2012. A mudança para o licenciamento baseado em núcleo do SQL Server 2012 Enterprise Edition significa que uma decisão descuidada sobre exatamente qual processador você usará pode custar muito dinheiro e muito desempenho e escalabilidade. O mesmo problema existe (em menor grau) com o SQL Server 2012 Standard Edition.
A diferença nos custos de licenciamento do SQL Server 2012 entre uma boa escolha de processador e uma escolha de processador ruim pode mais do que pagar pelo seu hardware e seu subsistema de armazenamento em muitos casos. Diante disso, como você faz uma escolha de processador ideal para o SQL Server 2012 Enterprise Edition? Normalmente, a primeira etapa seria decidir se você deseja usar um processador Intel Xeon ou um processador AMD Opteron (o SQL Server 2012 não oferece suporte à família de processadores Intel Itanium).
Infelizmente, é muito difícil fazer um bom caso técnico ou comercial para selecionar um processador AMD Opteron para uso com o SQL Server 2012 Enterprise Edition. Desde a introdução da arquitetura Intel Nehalem (séries Intel Xeon 3500, 5500, 6500 e 7500) em 2008-2010, a AMD simplesmente não conseguiu competir com a Intel no que diz respeito ao desempenho do processador single-thread. A AMD não tem recursos financeiros ou técnicos para competir com a Intel em termos de desempenho ou eficiência energética. A cada nova família de processadores lançada pela Intel, a AMD está ficando para trás. Isso não é bom para o T.I. indústria, uma vez que a falta de concorrência viável da AMD inevitavelmente diminuirá o ritmo de inovação da Intel.
Como um processador Intel Xeon parece ser a única opção viável para o SQL Server 2012, a próxima etapa é decidir qual das muitas famílias e modelos Xeon disponíveis seria a melhor escolha para a carga de trabalho pretendida do SQL Server 2012. A Intel tem diferentes famílias de produtos Xeon para diferentes servidores de contagem de soquetes. Para estações de trabalho e servidores de soquete único, eles têm a família Intel Xeon E3. Para estações de trabalho e servidores de dois soquetes, eles têm a família Intel Xeon E5. Finalmente, para servidores de dois soquetes, quatro soquetes e oito soquetes (ou mais), eles têm a família Intel Xeon E7.
Como este artigo está discutindo o SQL Server 2012 Enterprise Edition, ignoraremos a família Intel Xeon E3 de soquete único, pois os processadores Intel Xeon E3 estão limitados a usar 32 GB de RAM DDR3. Existem alguns cenários de nicho em que pode fazer muito sentido usar um processador Intel Xeon E3-1290V2 em um servidor de soquete único com 32 GB de RAM em combinação com o SQL Server 2012 Enterprise Edition. Talvez você tenha um banco de dados relativamente pequeno no qual precise do desempenho de thread único mais rápido e também precise de recursos específicos do Enterprise Edition, como Grupos de Disponibilidade AlwaysOn do SQL Server.
A escolha mais comum é entre um servidor de dois soquetes e um servidor de quatro soquetes (ou mais). Você terá que avaliar o tamanho e a intensidade da carga de trabalho e decidir se ela pode ser executada em um servidor de dois soquetes menor, mas mais rápido, ou se você terá que pular para um servidor maior e mais lento de quatro soquetes ou maior. Essa decisão é diretamente afetada pela capacidade total de CPU necessária, capacidade física total de RAM e capacidade total de E/S necessária (que está relacionada ao número e tipo de slots de expansão PCI-E no servidor).
Um equívoco comum é que servidores maiores baseados em Intel (em termos de contagem de soquetes) são servidores mais rápidos. Isso simplesmente não é verdade, por uma série de razões. O volume de vendas e a participação de mercado de servidores de dois soquetes é muito maior do que para servidores de quatro soquetes e maiores. Também há menos trabalho de engenharia e validação necessário para processadores Intel com capacidade para dois soquetes em comparação com processadores Intel com capacidade para quatro soquetes. Devido a esses fatores, a Intel lança novas arquiteturas de processador com mais frequência e mais cedo para servidores com menor número de soquetes. Atualmente, a família E3 de soquete único da Intel está usando o Ivy Bridge de 22nm e a família E5 de dois soquetes está usando o Sandy Bridge-EP de 32nm, enquanto a família Intel E7 está usando a microarquitetura Westmere-EX de 32nm mais antiga.
Outra razão é que você não obtém dimensionamento linear à medida que aumenta sua contagem de soquetes, mesmo com processadores de arquitetura de acesso não uniforme à memória (NUMA), que dimensionam muito melhor do que a arquitetura SMP (multiprocessamento simétrico) mais antiga. Isso significa que um servidor de quatro soquetes não terá o dobro do desempenho ou capacidade do processador que um servidor de dois soquetes com o mesmo modelo de processador.
Isso pode ser confirmado comparando os resultados do benchmark TPC-E OLTP de sistemas de dois soquetes com processadores Intel Xeon E7-2870 a sistemas de quatro soquetes com processadores Intel Xeon E7-4870 a sistemas de oito soquetes com processadores Intel Xeon E7-8870. Apesar de serem essencialmente o mesmo processador com as mesmas características individuais de desempenho, a pontuação do benchmark TPC-E não dobra quando você dobra a contagem de soquetes, como você pode ver na Tabela 1.
Processador | Contagem de soquetes | Pontuação TPC-E | Contagem total de núcleos | Pontuação/Núcleo TPC-E |
---|---|---|---|---|
Xeon E7-2870 | 2 | 1560,70 | 20 | 78,04 |
Xeon E7-4870 | 4 | 2862,61 | 40 | 71,57 |
Xeon E7-8870 | 8 | 4614.22 | 80 | 57,68 |
Tabela 1:Comparação das pontuações do TPC-E à medida que a contagem de soquetes aumenta
Quando penso em comparar processadores de soquete único com dois soquetes, com quatro e oito soquetes, gosto de usar uma analogia de carro e caminhão. Um servidor de soquete único é como um carro de corrida de Fórmula 1, sendo extremamente rápido, mas com muito pouca capacidade de carga. Um servidor de dois soquetes é como um Tesla Model S, sendo muito rápido e com capacidade de carga bastante decente. Um servidor de quatro soquetes é como um grande SUV, sendo mais lento, mas com mais capacidade de carga do que um Tesla Model S. Finalmente, um servidor de oito soquetes é como um caminhão Mack, capaz de transportar uma carga enorme a uma taxa muito mais lenta do que um SUV.
Processador | Contagem de soquetes | Pontuação TPC-E | Contagem total de núcleos | Pontuação/Núcleo TPC-E |
---|---|---|---|---|
Xeon E5-2690 | 2 | 1881,76 | 16 | 117,61 |
Xeon E5-4650 | 4 | 2651,27 | 32 | 82,85 |
Tabela 2:Comparação de pontuações TPC-E para dois modelos de processador Xeon E5
Comparando a Tabela 1 com a Tabela 2, podemos ver que a família Intel Xeon E5 se sai um pouco melhor no TPC-E do que a família Intel Xeon E7, o que não é surpresa, pois estamos comparando o Sandy Bridge-EP mais recente com o microarquitetura Westmere-EX mais antiga. Do ponto de vista do desempenho, o Xeon E5-2690 de dois soquetes se sai muito melhor do que o Xeon E7-2870 de dois soquetes. Na minha opinião, você realmente não deveria estar usando o Xeon E7-2870 de dois soquetes para SQL Server 2012 devido ao seu menor desempenho de thread único e maior número de núcleos físicos (o que significa um custo de licenciamento do SQL Server 2012 mais alto).
Atualmente, meu processador de servidor Intel favorito é o Intel Xeon E5-2690. Ele lhe dará excelente desempenho single-thread e custos de licenciamento do SQL Server 2012 relativamente acessíveis. Se você precisar avançar para um servidor de quatro soquetes, eu escolheria um processador Intel Xeon E5-4650 em vez de usar um processador Intel Xeon E7-4870, pois você obterá melhor desempenho de thread único e menor licença do SQL Server 2012 custos. Usar as pontuações de benchmark TPC-E é uma excelente maneira de comparar o desempenho e a eficiência da licença do SQL Server 2012 de diferentes famílias de processadores.