Um servidor de banco de dados terá melhor desempenho em 2 CPUs com 16 núcleos ou 4 CPUs com 8 núcleos?

6

O que eu tenho:

  • um aplicativo financeiro on-line (ASP.NET, C #)
  • no pico, temos 5K + usuários simultâneos
  • O
  • backend está sendo executado no Oracle 11g (servidor ativo + stand-by usando o Active Data Guard). No pico - sessões de banco de dados 4K-5K
  • O Oracle está instalado no Linux 5.8 (versão inquebrável da Oracle)
  • o tamanho do banco de dados: 7TB
  • armazenamento em disco: NetApp (conectado à rede de 10 GB)

Eu gostaria de substituir os servidores antigos (a TI adquirirá blades HP BL685C). Os servidores terão 256 GB de RAM.

Preciso da sua ajuda para descobrir o que fazer com CPUs e núcleos. Opções:

  1. 2 CPUs (2,3 GHz) com 16 núcleos cada
  2. 4 CPUs (3.0 GHz) com 8 núcleos cada

Pergunta: Qual deles devo escolher?

P.S. No próximo ano, migraremos do Oracle para o SQL Server. Espero que qualquer opção que você recomende funcione para ambas as plataformas

    
por AlexOdin 24.06.2012 / 01:58

5 respostas

10

Existem dois fatores que você deseja analisar:

  1. Desempenho agregado total: essa é a medida do poder total de computação de todos os núcleos na caixa. Você pode estimar esse valor observando a classificação da CPU do Passmark para a CPU e multiplicando pelo número de CPUs físicas no sistema .

  2. Desempenho de encadeamento único: essa é a medida de quanto poder de computação a CPU pode fornecer a um único encadeamento. Você pode estimar esse valor observando a classificação da CPU do Passmark para a CPU e dividindo pelo número de núcleos na CPU. (Para CPUs com hyper-threaded, divida por 1,25 vezes o número de núcleos físicos.)

Se uma máquina vencer em ambas as medidas, provavelmente será sua melhor escolha. Se estiver dividido nas duas medidas, a eficácia do software é aproveitar vários núcleos.

Observe que o desempenho da memória também pode ser importante. Mais canais de memória normalmente significam acesso mais rápido à memória. Além disso, é claro, a quantidade total de memória é importante. CPUs diferentes geralmente significam placas-mães diferentes, o que pode significar um desempenho de memória diferente.

    
por 24.06.2012 / 02:07
1

Tendo BogoMIPSes aproximadamente iguais, eu diria que você deve estimar o volume geral de cache L1 / L2 em ambos os casos - o maior é o vencedor.

    
por 24.06.2012 / 06:06
1

Você também precisará conhecer a configuração da NUMA. Se você tiver apenas um único nó NUMA ou vários nós NUMA. Eu sei que o SQL Server é NUMA ciente, e suponho que o Oracle é bem. Isso pode ter um grande impacto no desempenho do banco de dados, já que obter acesso à memória no mesmo nó NUMA é muito mais rápido do que acessar a memória em outro nó NUMA.

    
por 24.06.2012 / 18:24
0

Há algumas coisas que você precisa saber, por exemplo: a velocidade do processador (ghz ou mhz) não faz a velocidade real para um trabalho. Lembre-se de que existem processadores mais eficientes do que outros. Acho que você precisa procurar alguns benchmarks de CPU para decidir qual processador é melhor para esse servidor.

Divirta-se!

    
por 24.06.2012 / 08:56
0

Se as CPUs são da mesma classe, então você pode comparar a velocidade de maçãs com maçãs. Só isso o levaria para os processadores mais rápidos (4x8x3GHz).

O uso de seu banco de dados também pode ser um fator. Isso é sobre a "forma" do seu processamento de dados. São muitos cálculos menores ou menos computações maiores? Saindo do que mrdenny disse, e sendo que é um banco de dados transacional (certo? Como é financeiro?), Eu pensaria que não é tão importante maximizar o número de núcleos de CPU compartilhando o mesmo nó cache / NUMA, já que os múltiplos núcleos são prováveis trabalhando em diferentes tarefas onde o cache não desempenharia um papel tão grande como seria em um aplicativo de data warehousing / data mining. Ter 4 nós NUMA pode, na verdade, permitir maior rendimento para acesso à memória em comparação com 2 nós NUMA em uma situação transacional, na qual encadeamentos menores podem ser mais facilmente otimizados para acessar a memória em seu nó NUMA local. Além disso, se os processadores forem da mesma classe e o 4x8 for mais rápido, é provável que qualquer degradação de desempenho possível para acesso à memória não local seja compensada pelo desempenho / núcleo aumentado.

Se as CPUs não são da mesma classe, você realmente precisa olhar para alguns benchmarks para ver se o processador "mais lento" é mais eficiente.

Além disso, considere possíveis expansões futuras. São suas escolhas entre 2 e 4 processadores em um sistema de 4 soquetes? Se você acha que sua demanda por poder de processamento pode aumentar, ter os 2 processadores deixaria espaço para você expandir para 2 processadores adicionais se houver 4 soquetes no sistema.

    
por 09.02.2018 / 02:03