Olá, sou novo no MySQL e atualmente uso a versão 5.5, atualmente tenho uma instância para MySQL, com 50 bancos de dados hospedados nessa instância. Identificamos que por banco de dados havia uma quantidade fixa de usuários que a conexão por banco de dados está sendo usada, como no meu caso, seus 100 usuários estão ativos nesse banco de dados. gostaríamos de saber se existe alguma configuração específica sob a qual esse comportamento está sendo observado?
Você pode definir um cron a cada minuto para acionar o comando abaixo e canalizá-lo para um arquivo de log e girá-lo todos os dias.
Depois de um dia, você pode grep por valores superiores a 90 na coluna sumOfUsers para ver qual linha e, em seguida, você pode obter o timestamp acima dela. Assim, você pode medir o intervalo de tempo e fazer o monitoramento manual em torno desse tempo para ver com que frequência as conexões demoram quase 100. Além disso, você pode adicionar Host na consulta para ver se algum host de aplicativo específico está fazendo esse acúmulo de conexões.
Eu não fiz isso no MySQL, mas se você ler aqui (MySQL 5.6), você pode definir limites por conta de usuário - mas não AFAICS, por esquema (substitue 5.5 ou 5.7 no link para outros lançamentos que parecem idênticos).
Isso seria muito lógico e um recurso muito valioso e, embora não conheça os detalhes internos da codificação do mecanismo MySQL em C/C++, me parece ser um pedido de recurso muito útil. Se você quiser abrir um e reportar aqui, eu vou registrar um "eu também"!
As partes relevantes da documentação estão aqui:
Observe a recorrência da palavra
account
e nãoschema
!Mais aqui:
Isso realmente faz sentido, não é uma característica que eu esperava da documentação do MySQL! :-)
E finalmente (e possivelmente mais relevante!):
Assim, os recursos são distribuídos em uma
per account
base e nenhuma outra.Uma possível solução alternativa é especificar uma única conta de usuário por esquema e, em seguida, restringir esse usuário a x número de consultas, y número de atualizações e z número de conexões simultâneas. Não muito satisfatório, eu sei, mas esse é o ponto de situação no momento!
(ps +1 para uma boa pergunta!)