PHP / mySQL: como depurar um erro de 'muitas conexões'?


8

Estou trabalhando agora com o site PHP no servidor dedicado do meu cliente e recebo periodicamente um erro, too many connectionsmas ~ 5 usuários estão navegando nesta página.

Em phpMyAdminposso ver que a max connectionsvariável está definida como 400.

Em nosso servidor MySQL local em minha empresa, max connectionsdefinimos o uso 200e outros parceiros ao mesmo tempo em que este servidor.

Ouvi dizer que em seu servidor alguma outra web está usando o mesmo MySQL com grande tráfego.

Aqui estão as minhas perguntas:

  • Como depurar esse problema?
  • Posso examinar uma lista de consultas SQL que foram executadas nos últimos 10 minutos para verificar se é um problema nosso ou deles?

Respostas:


2

Os sintomas que você descreve apontam para conexões persistentes. Em algumas configurações, o PHP não lida com conexões persistentes muito bem: ele tende a abrir novas conexões em vez de reutilizar as existentes. Sugiro que você desative esse recurso e verifique se o problema persiste:

Se você notar uma melhoria, tente ajustar as chamadas persistentes ou se livrar delas permanentemente.


Eu também tiro esse caso. Não consigo modificar a configuração da web / servidor para fazer essas alterações (minha web não usa em persistent connectionslugar nenhum). Amanhã vou conhecer o homem deles e pedirei que façam isso.
precisa saber é

Isso não requer modificação de nenhuma configuração do servidor. Você só precisa atualizar os scripts PHP para o aplicativo.
Michael Mior

Claro, mas não tenho acesso à segunda página da Web que também está usando o mesmo servidor MySql - portanto, não posso atualizar o script PHP que pode ser usado mysql_pconnect. phpinfo()mostra que `mysql.allow_persistent` é On. Alterar esse sinalizador para Offnão dará nenhum resultado - ele deve ser um trocador em sua máquina.
Hsz 18/01/10

Eles mudaram mysql.allow_persistentpara Offe nosso CMS acelerou e agora não há problemas com conexões. Obrigado! Mas ainda estou pensando em como verificar quais scripts estavam se conectando ao servidor MySql?
HSZ

SHOW PROCESSLIST informa o usuário, host, banco de dados e (se você tiver sorte) a consulta.
Álvaro González
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.