Exibindo a lista de queries MYSQL em execução

Comunidade Linux Exibindo a lista de queries MYSQL em execução

Visualizando 1 post (de 1 do total)
  • Autor
    Posts
  • #12624
    Luis FatorBinario
    Luis FatorBinario
    Administrador

    Se no servidor que você administra há uma alta carga na CPU sem uso extra da RAM então o problema pode estar relacionado com o banco de dados, em nosso caso o MySQL.

    É muito difícil encontrar a solução para a maioria dos problemas de um servidor, e neste caso é ainda mais pois se isto estiver ocorrendo você terá que rastrear as queries (chamadas ao banco de dados), descobrir do qual site elas têm origem e tentar encontrar qual o plugin ou função que está causando o problema.

    Acesse o servidor onde está o banco de dados como root e digite o comando:

    > mysqladmin -u root -p -i 1 processlist

    * Será solicitada a senha admin do MySQL

    Este comando irá mostrar em um intervalo de 1 segundo todas as queries feitas ao DB. Preste atenção principalmente àquelas com maior tempo de execução. Se houverem queries demoradas com certeza há algo errado com o seu website.

     

    A solução para queries em sleep mode que demoram muito tempo para desaparecer está na configuração do MySQL. Edite o arquivo /etc/mysql/my.cnf e dentro do bloco [mysqld] adicione as seguintes linhas:

    interactive_timeout=120
    wait_timeout=120

    Em seguida reinicie o MySQL. Com isso as slow queries serão excluídas se não forem executadas em até 120 segundos.

    Na versão atual do MySQL o timeout padrão é muito alto e causa problemas como por exemplo o alto uso da CPU por scripts intermináveis.

    Para exibir o valor atual das variáveis acesse o MySQL com o comando:

    > mysql -u root -p

    *Digite a senha admin do MySQL para acessar o console. Em seguida digite a seguinte query:

    SHOW GLOBAL VARIABLES LIKE “%wait_timeout%”;

     

Visualizando 1 post (de 1 do total)

Você deve fazer login para responder a este tópico.