Estou solicitando um novo servidor da nossa equipe de servidores. O que é melhor para o desempenho do SQL Server: 2 CPUs com 8 núcleos por CPU ou 1 CPU com 16 núcleos?
relate perguntas
-
SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado
-
Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?
-
Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?
-
Quais são as principais causas de deadlocks e podem ser evitadas?
-
Como determinar se um Índice é necessário ou necessário
Se você está falando de CPUs físicas, então você teria que estudar as diferenças entre os chips nessas configurações, melhor ainda ver se você pode executar alguns benchmarks usando seu próprio código para ver se há alguma diferença útil. Pode haver uma grande variedade de outras diferenças: quanto cache L2/L3 está disponível no total, para cada chip e para cada núcleo?, há alguma diferença nos padrões de barramento de memória?, ...
Se você está falando de hardware virtual, então vai depender de qual sistema de virtualização você está usando e como ele compartilha cargas entre os recursos de CPU que possui. Pode não haver diferença porque, em ambos os casos, seus 16 núcleos virtuais terão suas cargas de trabalho distribuídas pelo hardware real exatamente da mesma maneira, ou pode haver algum tipo de espelho do hardware real (portanto, no caso 2x8, cada conjunto de 8 núcleos podem ser mais "locais" entre si do que para o outro conjunto).
Em ambos os casos, pode haver uma diferença de licenciamento: se você comprar licenças por soquete (ou seja, por CPU), a opção 1x16 pode ser mais barata, pois você só precisa pagar por uma. Se você pagar por máquina/nó, não haverá diferença.
Essa pergunta é muito ampla e a resposta depende muito da natureza de suas cargas de trabalho e da configuração planejada do SQL Server. No entanto, supondo que seu hardware futuro suporte NUMA (por que não?)
pode-se argumentar que o fornecedor pensa que 8 núcleos por soquete é a configuração ideal na maioria dos casos.
Você também pode achar este artigo antigo útil.
As diferenças são muito pequenas e dependem da localidade dos fios. Se os threads da CPU estiverem isolados e tiverem grandes conjuntos de dados, o cache L2 adicional em duas CPUs físicas oferecerá um desempenho ligeiramente melhor. Mas se os threads estiverem mal isolados e passarem todo o tempo acessando as mesmas regiões de memória, ter tudo em um único cache L2 reduzirá as buscas de memória.
Acredito que a geração atual do SQL Server esteja ciente do NUMA e tentará manter os processos relacionados em um único nó NUMA. Portanto, executar duas CPUs pode oferecer uma vantagem muito pequena. Mas, do ponto de vista prático, isso não é significativo.
Minha recomendação seria comprar o que for mais barato e gastar a diferença em mais unidades de RAM e SSD.