
Estou trabalhando agora com o site PHP no servidor dedicado do meu cliente e recebo periodicamente um erro, too many connections
mas cerca de 5 usuários estão navegando nesta página.
Posso phpMyAdmin
ver que a max connections
variável está definida como 400
.
Em nosso servidor MySQL local em minha empresa, configuramos max connections
e 200
outros companheiros usam este servidor ao mesmo tempo.
Ouvi dizer que no servidor deles alguma outra web está usando o mesmo MySQL com grande tráfego.
Aqui estão minhas perguntas:
- Como depurar esse problema?
- Posso consultar alguma lista de consultas SQL que foram executadas nos últimos 10 minutos para verificar se o problema é nosso ou deles?
Responder1
Os sintomas que você descreve apontam para conexões persistentes. Em algumas configurações o PHP não lida muito bem com conexões persistentes: ele tende a abrir novas conexões ao invés de reutilizar as existentes. Sugiro que você desative esse recurso e veja se o problema persiste:
- No nível do código: encontre chamadas paramysql_pconnect()e substitua-os pormysql_connect().
- No nível de configuração: encontre omysql.allow_persistentdiretiva e defina-a como falsa.
Se notar uma melhoria, você pode tentar ajustar as chamadas persistentes ou livrar-se delas permanentemente.