O que fazer se o número de conexões de uma instância atingir seu máximo?
O número de conexões indica o número de aplicações que podem ser conectadas simultaneamente ao banco de dados. O número de conexões é irrelevante para o número máximo de usuários permitidos por suas aplicações ou sites.
- Para uma instância de cluster, o número de conexões é o número de conexões entre o cliente e os mongos.
- Para uma instância de conjunto de réplicas, o número de conexões é o número de conexões entre o cliente e os nós primário e secundário.
- Para uma instância de nó único, o número de conexões é o número de conexões entre o cliente e o nó.
Quando o número de conexões para uma instância do DDS atinge o máximo suportado, novas solicitações de conexão não podem ser respondidas e a tentativa de conexão falha.
Sintoma
- Se as informações a seguir forem exibidas quando você usar o Mongo Shell para se conectar a uma instância, nenhuma outra conexão poderá ser estabelecida.
Figura 1 Mensagem exibida
Método de manuseio
- Verifique quais aplicações estão conectadas, otimize as conexões e libere os que não são necessários.
- Verifique o valor do parâmetro net.maxIncomingConnections e as especificações da instância. Altere o valor do parâmetro ou as especificações do banco de dados.
- Verifique se há métricas e alarmes anormais no console do Cloud Eye. O Cloud Eye monitora as métricas do banco de dados, como o uso da CPU, o uso da memória, o uso do espaço de armazenamento e as conexões do banco de dados, e permite definir políticas de alarme para identificar riscos antecipadamente se algum alarme for gerado. Para obter detalhes, consulte o Guia de usuário do Cloud Eye.
Solução
- Libere conexões desnecessárias.
- Você pode reiniciar a instância para liberar todas as conexões. Para obter detalhes, consulte Reinicialização de uma instância ou um nó.
- Você pode consultar o número atual de conexões em um nó e a origem da conexão, analisar o número de conexões estabelecidas entre cada cliente e a instância e ajustar o número de conexões. Para mais detalhes, consulte Como consultar e limitar o número de conexões?
- Altere valores de parâmetros ou especificações de banco de dados.
Você pode alterar o número máximo de conexões de uma instância modificando o parâmetro net.maxIncomingConnections. Em seguida, reinicie a instância para que a modificação tenha efeito. Para obter detalhes sobre como alterar valores de parâmetros, consulte Edição de um modelo de parâmetro.
- Se o valor for default, o número máximo de conexões é o valor padrão e está relacionado às especificações da instância. Para obter detalhes, consulte Especificações do DCS.
- Se houver muitas conexões, o serviço pode quebrar. Nesse caso, você pode aumentar o número de conexões alterando as especificações da instância. Para obter detalhes, consulte Alteração de uma classe de instância de cluster.
Se um modelo de parâmetro padrão for usado, você não poderá alterar suas configurações. Você pode criar um modelo de parâmetro e alterar os valores de parâmetro correspondentes. Após a alteração, associe o novo modelo de parâmetro à instância.
- Verifique se há consultas lentas. Você pode adicionar índices para melhorar as consultas.