Devo me preocupar com o processo de status de suspensão do mysql em processlist

6

Durante a operação do site, na lista de processos do mysql, vejo alguns processos com a coluna "command" marcada como "SLEEP".

Eu deveria me preocupar? Como parar isso?

    
por Hao 17.06.2011 / 11:27

2 respostas

14

Até os mais poderosos de nós precisam dormir algumas vezes. Sem o sono, a pessoa fica ansiosa e a insônia pode levar a todos os tipos de sintomas graves.

Mais seriamente: o estado de suspensão significa que o processo do MySQL fez com sua consulta, mas o lado do cliente ainda não saiu. Muitas aplicações web não limpam suas conexões depois, o que leva a dormir processos MySQL. Não se preocupe se houver apenas alguns deles; O MySQL irá limpá-los depois de um período de timeout configurável (wait_timeout).

Ou, se o seu aplicativo da Web usa conexões persistentes e pool de conexões, é perfeitamente normal ter muitos processos de suspensão: nesse caso, seu aplicativo apenas abre, por exemplo, 100 conexões SQL e as mantém abertas. Isso reduz a sobrecarga de abertura / fechamento de conexão. A menos que seu aplicativo seja muito ocupado, é normal que nem todo processo SQL tenha algo a fazer, então eles dormem.

    
por 17.06.2011 / 12:00
3

Não, não se preocupe com eles, a menos que você tenha milhares deles. Geralmente, eles indicam uma conexão de banco de dados que atualmente não está fazendo nada, mas que ainda está ativa.

Muitos sites são criados de tal forma que, no início do processamento de uma página, uma conexão de banco de dados é aberta, usada durante toda a geração da página e, finalmente, descartada no final. Se o descarte for feito corretamente, a conexão do banco de dados será fechada e o servidor eliminará o encadeamento relevante, o que significa que essa conexão desaparece da lista de processos.

Se a conexão não for fechada, ela poderá permanecer no estado "SLEEP" até que ela atinja o tempo limite. Nesse caso, você pode acabar com muitos processos de suspensão. mas a menos que você tenha problemas de memória no servidor db, isso também não é um grande problema.

    
por 17.06.2011 / 12:01

Tags