Esta página fornece orientação para selecionar armazenamento para implantações autogerenciadas do mongot (processo de pesquisa do MongoDB e pesquisa vetorial do MongoDB) em ambientes bare-metal e virtualizados.
O desempenho depende do sistema de armazenamento completo (dispositivo, controlador, host, rede e sistema de arquivos). Valide a classe escolhida sob carga representativa antes de implantar na produção.
Por que a classe de armazenamento é importante para mongot
mongot é criada no Apache Lucene, que acessa segmentos de índice por meio de arquivos mapeados por memória e depende de leituras aleatórias de baixa latência para serviço de query e manutenção de índice em segundo plano. A latência de armazenamento afeta:
Latência da query. As falhas de cache caem no disco no caminho crítico de cada query.
Taxa de transferência de indexação e replicação. As mesclagens de segmentos, a sincronização inicial e a replicação leem os segmentos existentes e gravam novos. As suposições de somente gravação não são válidas.
Estabilidade sob carga. Conforme a pressão do cache do sistema de arquivos aumenta, a latência da query degrada de forma não linear com a latência do armazenamento.
Essas propriedades tornam a classe de armazenamento uma das decisões de infraestrutura de maior impacto para uma implantação mongot.
Resumo da recomendação
Use SSD NVMe local dedicado por padrão para armazenamento de índice
mongotde produção.Use SSD SATA ou Serial Attached SCSI (SAS) empresarial local somente quando o NVMe não estiver disponível e a carga de trabalho for pequena a moderada.
Use um SAN all-flash somente quando ele for apresentado como um dispositivo de bloco e validado sob carga representativa de leitura e gravação mista.
Não use:
NFS, NAS, SMB ou outros protocolos de arquivo compartilhados
SSD de nuvem de uso geral como o tier de índice de produção
Qualquer mídia giratória
Orientação sobre classes de armazenamento
A tabela a seguir resume a recomendação para cada classe de armazenamento. As bandas de latência e IOPS refletem benchmarks públicos generalizados para a classe. O seu hardware pode ser diferente. Os seus resultados podem ser diferentes.
categoria | classe de armazenamento | Banda de latência de leitura aleatória | Banda de IOPS de leitura aleatória | Recomendação |
|---|---|---|---|---|
Recomendado | SSD PCIe/NVMe local | ~20-150 µs | 170K+ por dispositivo, dimensionando para 1M+ em unidades empresariais premium | Padrão recomendado para produção. Melhor ajuste para o perfil de leitura aleatória do Lucene. |
Condicional | SSD SATA/SAS empresarial local | ~100-200 µs | ~95K-100K por dispositivo | Linha de base aceitável para cargas de trabalho pequenas a moderadas em volumes de dados dedicados. Não recomendado para implantações sensíveis à latência ou com muita indexação. |
Condicional | SAN all-flash, dispositivo de bloco (FC, iSCSI, NVMe-oF) | Submilissegundo sob carga normal, embora varie materialmente por protocolo e rede | 200K+ no array, embora a taxa de transferência do mundo real dependa do caminho completo do hospedar para o array | Segunda opção aceitável somente quando montada em bloco, totalmente flash e validada de ponta a ponta sob carga representativa. |
Não recomendado | SSD de nuvem de uso geral (por exemplo, tiers de SSD de rede orientados a inicialização) | Milissegundos de dígito único | Alguns milhares de IOPS de linha de base, dimensionamento com provisionamento | Posicionado para inicialização, desenvolvimento, teste e uso transacional amplo. Não adequado para cargas de trabalho de leitura aleatória de baixa latência. |
Não recomendado | NFS, NAS, SMB ou outros protocolos de arquivo compartilhados | Consulte a justificativa | Consulte a justificativa | Risco de exatidão além do desempenho: o Lucene documentou falhas de bloqueio de arquivos e coerência de cache sobre NFS. Não use. |
Não recomendado | HDD, HDD otimizado para taxa de transferência, HDD frio ou outra mídia magnética | 5-10 ms | 75-500 per volume | Significativamente mais lento do que a mídia de classe SSD e fundamentalmente incompatível com o padrão de acesso do Lucene. |
Monitorar sua escolha de armazenamento
Combine a seleção de armazenamento com o monitoramento, especialmente se sua classe de armazenamento for diferente do NVMe local.
Investigue IOPS de disco sustentados acima de ~1K no volume do índice. A operação saudável não deve ficar próxima ao ponto de saturação do dispositivo.
Monitorar falhas de página de pesquisa acima de ~1000/s, pois elas indicam que o sistema operacional está puxando repetidamente as páginas de índice necessárias do disco em vez de servi-las do cache do sistema de arquivos. Juntamente com IOPS elevados, isso indica pressão de armazenamento ou memória no caminho crítico.
Observe a latência da query p99 para crescimento não linear à medida que a carga aumenta. As implantações vinculadas ao armazenamento se degradam acentuadamente em vez de gradualmente.
Se você vir esses sinais em uma implantação SAN, de uso geral ou SATA/SAS, revise a classe de armazenamento antes de dimensionar. Se você os vir no NVMe local, procure primeiro o espaço livre de memória para o cache do sistema de arquivos e se o volume está realmente dedicado a mongot.