Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Ajustando as configurações do pool de conexões

Nesta página

  • Calcular número máximo de conexões
Problema
várias plataformas
Tempo de operação lateral do aplicativo lento que não são refletidos nos registros do servidor do banco de dados ou no painel de tempo real.

Utilize o connectTimeoutMS para garantir que o driver não espere indefinidamente durante a fase de ligação.

Defina connectTimeoutMS como um valor maior do que a maior latência de rede que você tem para um membro do conjunto.

Por exemplo: se um membro tiver uma latência de 10000 milésimos de segundo, a configuração de connectTimeoutMS para 5000 (milésimos de segundo) impedirá que o driver se conecte a esse membro.

Um firewall configurado incorretamente fecha uma conexão de soquete incorretamente e o driver não consegue detectar que a conexão foi encerrada incorretamente.

Utilize o socketTimeoutMS para garantir que as tomadas estejam sempre fechadas.

Configure o socketTimeoutMS para duas ou três vezes o comprimento da operação mais lenta que o driver executa.

Os registros do servidor ou o painel em tempo real mostram que o aplicativo gasta muito tempo criando novas conexões.

Não há conexões suficientes disponíveis na inicialização. Aloque conexões no pool definindo minPoolSize.

Defina minPoolSize para o número de conexões que você deseja que estejam disponíveis na inicialização.

A instância do MongoClient garante que o número de conexões exista o tempo todo.

A carga no banco de dados está baixa e há um pequeno número de conexões ativas a qualquer momento. O aplicativo executa menos operações em qualquer momento do que o esperado.
Aumente o maxPoolSize ou aumente o número de threads ativos em seu aplicativo ou a estrutura que você está usando.
O uso da CPU do banco de dados é maior do que o esperado. Os registros do servidor ou o painel de tempo real mostram mais tentativas de conexão do que o esperado.
Diminua o maxPoolSize ou reduza o número de threads em seu aplicativo. Isso pode reduzir o tempo de carregamento e resposta.

Aviso

Não utilize o socketTimeoutMS para evitar operações de servidor de longa duração. Em vez disso, use maxTimeMS() com query para que o servidor possa cancelar operações de longa execução.

Calcule o uso para localizar o número de operações em execução para cada conexão.

Considere um servidor do aplicativo conectando a um conjunto de réplicas com três membros. Neste cenário, o servidor do aplicativo cria um pool de conexões para cada membro do conjunto de réplicas. Você também precisa considerar as conexões que cada cliente, em cada nó, cria para monitoramento.

O número máximo de conexões abertas pelo servidor de aplicativos é baseado no maxPoolSize, no número de membros e nas conexões de monitoramento e RTT de cada membro.

Por exemplo, você pode calcular as conexões de saída de um aplicativo para um conjunto de réplicas de três membros com a seguinte fórmula:

(
**100** {:urioption:`maxPoolSize`}
+ **1** monitoring connection
+ **1** RTT connection
)
* 3 replica set members
= **306** outgoing connections from the application.
← Visão geral do pool de conexões