Desempenho

As implementações do IBM Cloud® Databases for MongoDB podem ser escaladas manualmente para seu uso ou configuradas para ajuste automático de escala sob determinadas condições de recurso. Se estiver ajustando o desempenho da sua implementação, considere alguns fatores primeiro.

Monitorando a sua implementação

As implementações do Databases for MongoDB oferecem uma integração com o serviço IBM Cloud® Monitoring para monitoramento básico do uso de recurso em sua implementação. Muitas das métricas disponíveis, como o uso de disco e as IOPS, são apresentadas para ajudar a configurar o ajuste automático de escala em sua implementação. Observar as tendências em seu uso e configurar o ajuste automático de escala para responder a elas pode ajudar a aliviar problemas de desempenho antes que os seus bancos de dados se tornem instáveis devido ao esgotamento de recursos.

Uso de disco

Se estiver preocupado com a quantidade de espaço que o MongoDB está usando para armazenar seus dados, você poderá executar alguns diagnósticos de armazenamento de dados nativos do MongoDB para descobrir os tamanhos de itens como bancos de dados, coleções e índices. Se o tamanho aproximado do seu conjunto de dados for conhecido e fixo, será possível ajustar a escala manualmente do seu disco para acomodar seus dados. Se seu conjunto de dados crescer a uma taxa previsível ao longo do tempo, será possível configurar o ajuste automático de escala para aumentar o tamanho do disco quando o uso do seu disco atingir um determinado limite.

E/S de disco

O número de Operações de entrada/saída por segundo (IOPS) em implementações do Databases for MongoDB é limitado pelo tipo do volume de armazenamento. Os volumes de armazenamento para implementações em Databases for MongoDB são Block Storage Endurance Volumes na camada de 10 IOPS por GB. Atingir os limites de utilização de E/S pode fazer com que seus bancos de dados respondam lentamente ou pareçam sem resposta. Coisas como consultas não otimizadas, criação de índices e criação de novos índices podem causar picos de IOPS, mas também é possível que as cargas de trabalho normais de seus aplicativos possam exceder o IOPS disponível para sua implantação.

É possível aumentar as IOPS de número disponíveis para a sua implementação, aumentando o espaço em disco. Também é possível configurar o ajuste automático de escala para aumentar o tamanho do disco automaticamente quando a utilização de E/S da sua implementação atingir um determinado ponto de saturação por um período de tempo estendido.

Para obter mais informações, consulte a documentação doMongoDB

Cache e memória do WiredTiger

Databases for MongoDB usa o mecanismo de armazenamento WiredTiger, que usa o cache de memória do sistema de arquivos e um cache de memória interna. O MongoDB é mais eficiente quando entrega seus dados por meio do cache interno com o qual ele conta, um pouco menos eficiente quando os dados estão no cache do sistema de arquivos e menos eficiente quando precisa capturar seus dados do disco.

O tamanho padrão do cache interno é 50% of (total RAM per member - 1 GB) ou 256 MB, o que for maior. Por exemplo, o tamanho mínimo de memória de uma implantação Databases for MongoDB é de 4096 MB por membro de dados, portanto, o cache interno é de 1536 MB (porque 0.5 * (4096 MB - 1024 MB) = 1536 MB.

A razão do cache do sistema interno/arquivo não é configurável pelo usuário em sua implementação, mas é possível ajustar a escala da quantidade total de memória para ajustar o cache interno para tornar o seu banco de dados mais eficiente. Por exemplo, se você dimensionar a memória para 5120 MB por membro, o tamanho do cache interno será de 2048 MB. 0.5 * (5120 MB - 1024 MB) = 2048 MB.

Outra maneira de usar o ajuste automático de escala é configurar a memória para ajustar a escala quando a utilização de E/S do disco atingir um determinado limite. Como o aumento da memória diminui a quantidade de leituras e gravações que o MongoDB faz no disco, uma memória adicional pode aliviar a pressão sobre a E/S de disco suportando mais armazenamento em cache.

Mais informações sobre o cache WiredTiger estão na documentação MongoDB.

Desempenho da consulta

A documentação do site MongoDB tem vários recursos sobre desempenho de consultas, incluindo um guia sobre como analisar o desempenho de consultas. Depois de ter uma ideia geral do desempenho de suas consultas, eles também têm dicas para otimizá-las.

Como um tópico mais avançado, você pode aprender como o MongoDB gerencia os planos de consulta.

Outras ferramentas de monitoramento do MongoDB

Também é possível aproveitar algumas das funções de monitoramento nativo do MongoDB. Por exemplo, você pode usar ambos mongotop e mongostat.

mongotop 30 --username admin --password $PASSWORD --tls --tlsCAFile $CERTFILE --authenticationDatabase admin --host host1.databases.appdomain.cloud:31712, host2.databases.appdomain.cloud:31712

mongostat -n 20 1 --username admin --password $PASSWORD --tls --tlsCAFile $CERTFILE --authenticationDatabase admin --host host1.databases.appdomain.cloud:31712,host2.databases.appdomain.cloud:31712 --json

Execute qualquer um dos comandos documentados que relatem o status do banco de dados MongoDB.

Muitos dos utilitários e comandos do MongoDB precisam da função do Cluster Monitor para serem executados. Ele não faz parte do conjunto de funções padrão admin. Conceder a função do Monitor de Cluster para o usuário admin em sua implementação.

Para obter mais informações, consulte o post Best Practices blog.