MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

O que significa ajustar o conjunto de trabalho na RAM para MongoDB?


"Conjunto de trabalho" é basicamente a quantidade de dados E índices que estarão ativos/em uso pelo seu sistema.

Então, por exemplo, suponha que você tenha 1 ano de dados. Para simplificar, cada mês se refere a 1 GB de dados, totalizando 12 GB e, para cobrir os dados de cada mês, você tem 1 GB de índices novamente, totalizando 12 GB para o ano.

Se você estiver sempre acessando os dados dos últimos 12 meses, seu conjunto de trabalho será:12 GB (dados) + 12 GB (índices) =24 GB.

No entanto, se você realmente acessar apenas os dados dos últimos 3 meses, seu conjunto de trabalho será:3 GB (dados) + 3 GB (índices) =6 GB. Nesse cenário, se você tivesse 8 GB de RAM e começasse a acessar regularmente os dados dos últimos 6 meses, seu conjunto de trabalho começaria a exceder a RAM disponível e teria um impacto no desempenho.

Mas, geralmente, se você tiver RAM suficiente para cobrir a quantidade de dados/índices que espera acessar com frequência, ficará bem.

Editar:resposta à pergunta nos comentários
Não sei se entendi muito bem, mas vou tentar responder. Em primeiro lugar, o cálculo para o conjunto de trabalho é uma "figura de parque de bola". Em segundo lugar, se você tiver um índice (por exemplo) de 1 GB em user_id, apenas a parte desse índice que é comumente acessada precisa estar na RAM (por exemplo, suponha que 50% dos usuários estejam inativos, então 0,5 GB do índice será mais frequente necessário/necessário na RAM). Em geral, quanto mais RAM você tiver, melhor, especialmente porque o conjunto de trabalho provavelmente aumentará com o tempo devido ao aumento do uso. É aí que entra a fragmentação - divida os dados em vários nós e você pode dimensionar horizontalmente de forma econômica. Seu conjunto de trabalho é então dividido em várias máquinas, o que significa que o maior número pode ser mantido na RAM. Precisa de mais memória RAM? Adicione outra máquina para fragmentar.