Que hardware faz um bom servidor MongoDB? Onde conseguir isso?

13

Suponha que você esteja no dell.com agora e esteja comprando um servidor para executar seu banco de dados MongoDB para sua pequena inicialização. Você terá que lidar literalmente com dezenas de milhares de gravações e leituras por minuto (mas pequenos objetos). Você iria para 2 processadores? Invista mais em RAM?

Eu ouvi (corrija-me se eu estiver errado) MongoDB lida com o máximo que puder na RAM e, em seguida, libera tudo para o disco, nesse caso eu deveria investir em uma CPU com um grande cache L2, provavelmente & gt 40GB de RAM e uma unidade de estado sólido .. certo?

Eu estaria melhor com um servidor high-end (~ $ 11.309, 2 processadores caros, 96GB de RAM) ou 2x (~ $ 6.419, 2 processadores caros, 12GB de RAM)?

A Dell está bem ou você tem sugestões melhores? (Estou fora dos EUA, em Portugal)

    
por João Pinto Jerónimo 16.02.2011 / 20:48

8 respostas

19

Inicialmente, você vai querer reforçar a memória RAM. A RAM de que você precisa depende da quantidade de dados que você está armazenando, do número de coleções, dos índices dessas coleções, dos padrões de acesso a dados, etc. Muitos fatores.

O mais importante é ter RAM suficiente para manter seus índices na RAM. Caso contrário, seu desempenho sofrerá drasticamente, pois o (s) seu (s) servidor (es) irá (ão) pausar constantemente, enquanto o Mongo move a memória mapeada para dentro e fora da RAM. Apesar de tudo isso, não temos visto a velocidade de gravação afetada, mas todo o resto é. Processamento escreve fora da fila, flushing, despejos, etc, todos levam um golpe dramático, uma vez que seus índices não se encaixam na RAM.

Portanto, não há resposta curta real. Basicamente, seja esperto sobre seus índices. Use apenas o que você precisa. Mantenha coleções pequenas, se puder (ou seja, dividir em várias, sempre que puder). Coleções interessantes também são interessantes de se ver.

    
por 16.02.2011 / 21:51
9

É muito importante usar uma máquina de 64 bits e não 32 bits. link

    
por 11.06.2011 / 19:52
6

Com o MongoDB, o que você quer é RAM. E então um pouco mais de RAM. Comprar RAM não pode machucar.

    
por 16.02.2011 / 21:41
3

Se você está no estágio de comprar hardware de produção, o aplicativo que você está executando já deve estar escrito, certo? Então, execute o aplicativo no hardware que você possui e faça as métricas. Gradualmente, mude alguns componentes e tome mais métricas. Quando terminar, você saberá quais pontos de foco são mais importantes para sua aplicação e cenário.

    
por 16.02.2011 / 21:07
3

Primeiro - compre o máximo de RAM possível. Segundo fator limitante é a velocidade do disco. O RAID ajuda. O SSD ajuda. Mais fragmentos ajudam. Meça a taxa de transferência comparando com a eficiência do disco e os tempos de resposta necessários e, em seguida, decida o que fazer dentro do orçamento que você tem.

    
por 16.02.2011 / 23:17
1

Gostaria de saber se uma solução de cluster do Linux seria uma alternativa melhor e mais barata.

O MongoDB permite distribuir dados por muitos servidores. Isso será impossível com um servidor que buzina.

Eu achei que o MongoDB era um dos próximos passos depois de descobrir que a implantação de um banco de dados relacional em um servidor de buzina não aumentava o suficiente.

    
por 16.02.2011 / 20:57
1

Dezenas de milhares de escritas por minuto não são nada. Você pode obter 50.000 ou mais gravações por segundo em hardware decente. As especificações de hardware realmente dependem do que você está tentando fazer. Em geral, RAM suficiente para grandes bancos de dados e sistemas IO rápidos são importantes além de uma CPU decente ...

    
por 16.02.2011 / 20:57
0

É importante estabelecer uma linha de base sólida antes de projetar seu hardware. Geralmente esperamos que esse tipo de pergunta seja feita pelo experiente pessoal do MongoDB antes que alguém possa considerar responder à sua pergunta.

Estatísticas atuais do aplicativo (se houver)

  • Total de registros até a data?
  • Iniciando a estimativa de armazenamento?
  • % de crescimento esperado / mês?
  • Tamanho médio do documento?

Carga de trabalho de ingestão de dados

  • Novas inserções / dia, pico e amp; média por segundo?
  • Atualizações / dia, pico e amp; média por segundo?
  • Lê / dia, pico e amp; média / segundo?
  • Número médio de documentos retornados por consulta: 70
  • Exclusões / dia, pico e amp; média / segundo: nenhuma
  • Haverá cargas em massa / atualizações em massa? Se sim, quão grande e com que frequência?
  • Quantos tipos diferentes de documentos haverá?
  • Quantos de cada um?
  • Como você espera que seus documentos sejam (exemplo de documento)?

Padrões de consulta & Expectativas de desempenho

  • Leia o SLA de resposta?
  • Escreva o SLA de resposta?
  • As leituras são baseadas em intervalos ou aleatórias?

Padrões de acesso antecipados

  • Número de índices secundários necessários?
  • Número de atributos?
  • Condições de classificação?
  • Único ou Composto?
por 03.08.2015 / 22:14