Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Lista de processos do MySql preenchida com entradas de suspensão levando a muitas conexões?


Basicamente, você obtém conexões no estado de suspensão quando:
  • um script PHP se conecta ao MySQL
  • algumas consultas são executadas
  • então, o script PHP faz algumas coisas que levam tempo
    • sem se desconectar do banco de dados
  • e, finalmente, o script PHP termina
    • o que significa que ele se desconecta do servidor MySQL

Então, você geralmente acaba com muitos processos em um estado de suspensão quando você tem muitos processos PHP que permanecem conectados, sem realmente fazer nada no lado do banco de dados.

Uma idéia básica, então:certifique-se de que você não tem processos PHP que rodam por muito tempo -- ou force-os a se desconectarem assim que eles não precisarem mais acessar o banco de dados.


Outra coisa, que costumo ver quando há alguma carga no servidor:
  • Há cada vez mais solicitações chegando ao Apache
    • o que significa muitas páginas para gerar
  • Cada script PHP, para gerar uma página, se conecta ao banco de dados e faz algumas consultas
  • Essas consultas levam cada vez mais tempo, pois a carga no servidor de banco de dados aumenta
  • O que significa que mais processos continuam se acumulando

Uma solução que pode ajudar é reduzir o tempo de suas consultas, otimizando as mais longas.