Servidor de banco de dados: RAM rápida pequena ou RAM lenta lenta?

33

No momento, estamos projetando nossos novos servidores de banco de dados e criamos uma troca que não sei ao certo como responder.

Estas são as nossas opções: 48GB 1333MHz ou 96GB 1066MHz.

Meu pensamento é que a RAM deve ser abundante para um servidor de banco de dados (temos muitos e muitos dados e algumas consultas muito grandes), e não o mais rápido possível. Aparentemente, não conseguimos chips de 16GB a 1333MHz, daí as opções acima.

Portanto, devemos obter muita RAM mais lenta ou menos RAM mais rápida?

Informação extra:

Número de slots DIMM disponíveis: 6
servidores: Dell Blades CPU: 6 núcleos (apenas um soquete devido ao licenciamento Oracle).

Josh Smeaton
fonte
12
Na IMO, 100% mais capacidade de RAM supera 20% adicionais em velocidade de RAM.
Joe Internet
3
Especialmente porque não é nem 20%;)
TomTom
Obrigado a todos. Eu também tinha certeza disso, mas queria confirmação.
Josh Smeaton

Respostas:

59

Você vai querer ir com a RAM grande e lenta. A diferença no desempenho da RAM é insignificante em comparação com a diferença entre o desempenho da RAM e o desempenho do disco.

Falcão do céu
fonte
Obviamente, isso depende do tamanho do banco de dados - detalhes básicos, mas importantes ainda.
Morg.
Sim, e Josh especificou claramente que o cenário em questão envolve "muitos e muitos dados".
Skyhawk
Para algumas pessoas, um milhão de linhas se parece com "muitos e muitos dados". Dificilmente um motivo para não ter tudo na memória;)
Morg.
16

Tudo bem, é muito muito muito simples:

Seu banco de dados cabe em 48 GB de RAM com o SO e tudo? se sim, pegue isso. Senão, pegue 96 GB

Além disso, o ajuste do banco de dados em xyz GB de RAM significa que ele se encaixa nos índices, visualizações e tudo mais.

Os comentários do SSD são completamente sem sentido, tanto a largura de banda quanto o tempo de acesso não estão no mesmo nível e nenhum SSD pode justificar a utilização de menos RAM.

Morg.
fonte
5
Esta é uma informação muito importante. Se o banco de dados tiver apenas 5 GB e não estiver planejado aumentar muito, é melhor você usar uma quantidade menor de RAM mais rápida.
Kibbee
13

Apenas banco de dados? Dependendo do banco de dados, eu pensaria que a RAM maior seria melhor. Foi provado que a diferença de velocidade é minúscula, na melhor das hipóteses, mas os 48 GB adicionais farão / poderão fazer uma enorme diferença.

TomTom
fonte
11

Definitivamente grande RAM, a velocidade que se dane.

O acesso a dados aleatórios para a tecnologia RAM do século XX '90 é inferior a 100 ns. É usar chips praticamente antigos que nem sequer se encaixam fisicamente em nada contemporâneo.

O acesso a dados aleatórios para discos rígidos de 15k rpm de ponta é medido em milissegundos. 100 ns é 10 000 vezes mais curto (nano -> micro -> mili) que 1 ms. A RAM atual é mais rápida e o HDD precisa de vários milissegundos para acessar os dados. Eu não poderia me importar menos se minha RAM fosse 50.000 mais rápida ou apenas 30.000 vezes mais rápida que o HDD, se eu pudesse obter mais.

Paweł Brodacki
fonte
5

Você deve prestar atenção em alguns pontos:

  • Garantia de memória A velocidade da memória depende de dois fatores: velocidade e latência do barramento. Geralmente chips com mais densidade resultam em uma latência mais alta, o que significa, finalmente, menos velocidade
  • Total de dados do índice O y mais crítico para carregar todos os dados do índice na memória. Os dados do índice são os dados mais críticos que você precisa na memória (maior efeito de penalidade no desempenho).
  • Velocidade do disco Você tem os dados do banco de dados armazenados no SSD? Se a resposta for sim, cuide especialmente da latência da memória.
nefeli
fonte
2

LARGURA DE BANDA DA MEMÓRIA = / = VELOCIDADE!

Provavelmente, a parte mais importante das informações ausentes é o tempo da memória e o tipo de CPU / FSB. reduza o atraso da carga da memória da CPU em alguns ciclos e você aumentará o dobro da largura de banda em certos cálculos. Alguns bancos de dados não usam grandes quantidades de memória RAM devido a razões operacionais e técnicas, qual servidor de banco de dados você está usando? Tipo de CPU? L [123] níveis de cache? tipo de consultas a serem executadas? tamanho do banco de dados?

Silverfire
fonte
2
-1. Factualmente errado em 99,9% dos casos.
TomTom
A que parte você está se referindo?
Silverfire 28/09
2
Qualquer banco de dados maior que a memória fica lento imediatamente. Os ciclos da CPU são uma piada em comparação com - a menos que seja um caso OLAP muito especial - a latência de E / S introduzida. A maioria dos bancos de dados utiliza grandes quantidades de memória RAM - o menor servidor de banco de dados que já vi que não é uma piada para um banco de dados minúsculo, é muitas vezes maior no uso de RAM do que na estação de trabalho comum. A menos que você insista em usar uma tecnologia desatualizada ("limites do sistema OS"). E nem a velocidade da CPU nem o tipo FSB fazem a diferença - os bancos de dados precisam de memória.
TomTom
0

Antes de gastar muito dinheiro com hardware errado, eu fazia alguns testes e análises antes de comprar o hardware.

  • Primeiro de tudo, pense no seu SLA.
  • Quaisquer requisitos rígidos para desempenho e tempos de resposta?

Sua escolha deve depender de muitos fatores:

  • sob diferentes cargas de trabalho e usos, qual é realmente o gargalo?
  • CPU, memória, armazenamento, rede?
  • Talvez seja mais importante gastar mais dinheiro em armazenamento mais rápido do que mais memória?
  • CPU mais rápida que mais memória? rede mais rápida? redesenho menor em sofware / sql?

  • sua análise também pode ser muito relevante para os desenvolvedores, arquitetos de banco de dados e software e designers de consulta sql .....

Se você estiver usando o Windows - poderá executar o perfmon facilmente para ver algumas estatísticas no sistema em execução atual e pode ter muita sorte em ter uma idéia clara de suas necessidades.

manmathan
fonte
1
Sou desenvolvedor e estou ajudando a avaliar essa decisão. Como não temos um administrador de sistema real, todos nós (6 de nós) entramos na discussão. Nossos servidores atuais são de 32 bits e são incapazes de fazer muito devido ao limite de memória por processo. Nossa rede / armazenamento está (deve estar) bem por enquanto. O back-end de armazenamento é uma SAN. Nossa CPU nunca é maximizada. A maior parte do custo associado às nossas consultas é de E / S, que deve ser aliviada pela capacidade de usar mais RAM. Também estamos atualizando para o RAC. Temos uma ideia clara do que precisamos. É a minúcia que é questionável.
Josh Smeaton