O que é mais importante para um servidor de banco de dados? Mem? Velocidade Mem? Cores?

11

Vou mudar meu servidor de banco de dados para um novo hardware um pouco melhor. O servidor de banco de dados atual não tem problemas, exceto que está executando o Centos 4. O hardware atual é 2 xeon 5335 quad core, 4 15K RPM em RAID 10 e 4GB (sim, são apenas 4GB) de memória.

As opções de hardware no meu orçamento quase não têm diferenças de preço e terão os mesmos 4 discos rígidos de 15K RPM no RAID 10. Eles são:

  • 2 xeon 5335 quad core com 8GB 533/667
  • 2 xeon 2620 de núcleo hexadecimal com 16GB 1333
  • 4 opteron 8212 de núcleo duplo com 8GB 667
  • 1 octo core xeon 2650 com 8GB 1333
  • 1 quad core xeon 3460 com 16GB 1333

Excluindo discos rígidos, qual é a ordem das partes importantes de um servidor de banco de dados? É algo como: tamanho da memória, velocidade da memória, núcleos e tamanho do cache?

Echo diz Restabelecer Monica
fonte
3
Qual é a sua utilização atual na CPU? Você está correndo a 10%? 50%? Se você é ~ 30-40% em uma base regular, então parece que o 2620 com 16GB RAM é o que você quer (um chip hexacore Q1`12 com 16GB RÁPIDO RAM Sim, por favor?)
jcolebrand
@jcolebrand Esse é o que eu estava pensando que seria melhor. 10-20% de utilização, em média, com picos de 30 a 40%, às vezes.
Echo diz Reinstate Monica
XEON 2620 a 2 GHz, XEON 3460 a 2,8 GHz?
Nels

Respostas:

21

Na minha experiência, o que você está procurando seria nesta ordem de prioridade:

  1. Velocidade do subsistema de disco. RAID10 na minha experiência é melhor. Pontos de bônus para SSDs.
  2. Quantidade total de RAM Quanto mais RAM, mais cache o servidor poderá ter.
  3. Velocidade de memória. A RAM mais rápida é obviamente melhor que a RAM mais lenta; no entanto, a RAM é sempre mais rápida que os discos, portanto, mais RAM mais lenta é melhor que a RAM menos rápida.
  4. Número de núcleos da CPU
  5. Velocidade da cpu

Obviamente, isso depende do aplicativo, mas normalmente o trabalho de um servidor de banco de dados é fornecer um acesso realmente rápido aos dados; portanto, a velocidade da CPU é menos importante do que a velocidade de acesso aos dados (discos e RAM). Mas, obviamente, se você estiver usando muitos cálculos / matemática em suas consultas, precisará de mais recursos da CPU.

Josh
fonte
2
dependendo da arquitetura db, eu diria que mais núcleos seriam melhores em geral do que mais velocidade da CPU, porque maior taxa de clock! = pipeline mais curto, e há muitas coisas a serem consideradas lá, mas com mais núcleos, o sistema operacional pode ter mais espaço para fazer processos paralelos, e os mecanismos geralmente são inteligentes o suficiente para serem capazes de se espalhar por mais núcleos.
precisa saber é o seguinte
ponto @jcolebrand tomado e resposta atualizada!
18712 Josh
2
Como o MySQL foi mencionado especificamente, os processadores mais rápidos geralmente são uma escolha melhor do que mais (supondo que você não esteja falando apenas de 1 ou 2), pois a velocidade de uma única consulta é fundamentalmente limitada pela velocidade de um único processador. Até as versões mais recentes do MySQL não se adaptam tão bem quanto outros RDBMSs em vários núcleos devido à contenção interna de mutex e semáforo. Eu corro vários servidores de 24 núcleos e daria meu braço esquerdo para trocá-los pela metade do número de núcleos 1,5x mais rápido.
23412 Aaron Brown
7

No que diz respeito ao MySQL, você também deve considerar o mecanismo de armazenamento padrão dos seus dados.

Se você usar apenas dados MyISAM, precisará considerar apenas o seguinte

Velocidade do disco, Velocidade da memória, RAM total, CPU

O número de núcleos é um fator não grande porque o MyISAM (de fato, o mysqld) não utiliza múltiplos núcleos.

Se você estiver usando apenas dados do InnoDB, agora você tem algo a falar sobre os núcleos.

O MySQL 5.5 agora vem com suporte multicore para o InnoDB.

Todas as CPUs estarão disparando em todos os cilindros para o InnoDB, desde que você o configure adequadamente. Acredite ou não, se você não configurar o InnoDB, há casos em que as versões mais antigas do InnoDB serão mais rápidas do que as versões mais recentes.

Nota aos moderadores

Se houver muitos links, não faça voto negativo. Apenas me avise e posso citar alguns trechos desses links.

RolandoMySQLDBA
fonte
É bom saber. Muitas tabelas são MyISAM, mas a maioria, se não todas, pode ser alterada para o InnoDB, o que eu estava pensando em fazer de qualquer maneira. Vou atualizar para o 5.1 (de 4.1)
Echo diz Reinstate Monica
Você precisa atualizar para o 5.5. O MySQL 5.1 requer o plugin. É mais fácil apenas ir 5.5.
RolandoMySQLDBA
O InnoDB Plugin pode ser instalado facilmente no 5.1. Além disso, o Percona Server 5.1 é baseado no plugin InnoDB.
Aaron Brown
@AaronBrown: Como o Echo possui o MySQL 4.1, o Percona 5.1 ou o MySQL 5.5 o faria. Mesmo que eu tenha instalado os plug-ins semisync 5.5 antes, sou um pouco preguiçoso em plugins.
RolandoMySQLDBA 19/04/12
0

De tudo o que já foi dito e do que pareço dos servidores DB: "2 xeon 2620 de núcleo hexadecimal com 16GB de 1333" me parece a primeira escolha.

Use RDIMM3 com velocidade de 1333 MHz - 12 ou 15 GB é provavelmente mais rápido que 16 GB, pois você pode dividir o número de DIMMs por 3.

Se o seu banco de dados for pesado em gravações, procure também um bom desempenho de E / S de disco.

Nils
fonte