Ajustando as configurações do pool de conexões
Nesta página
Problema | várias plataformas |
---|---|
Tempo de operação lateral do aplicativo lento que não são refletidos nosregistros do servidor do banco de dados de dados ou no painel de tempo real. | Utilize o Defina Por exemplo: se um membro tiver uma latência de 10000 milésimos de segundo, a configuração de |
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 Configure o |
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 Defina minPoolSize para o número de conexões que você deseja que estejam disponíveis na inicialização. A instância do |
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.
Calcular número máximo de conexões
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.