MySQL leva uma eternidade para carregar (somente quando usando WP)

1

Não sei ao certo o que está acontecendo, mas é há algum tempo que estou usando meu site de desenvolvimento (rodando em uma VM) na máquina local do Ubuntu. O site é executado em uma instância do Wordpress usando a configuração do MySQL para usar a tabela innodb em uma pasta separada. Eu não tenho problemas de permissão, tanto quanto eu sei.

Eu tento usar o MySQL CLI Eu posso consultar o banco de dados sem problemas; o mesmo usando phpmyadmin. Mas quando se trata de acesso através do site, leva muito tempo e, muitas vezes, preciso parar o serviço.

E isso é novamente outro sintoma, algo não funciona como deveria. Parando o serviço via sudo service mysql stop eu posso ver que ele pára imediatamente (o phpmyadmin não pode mais se conectar) mas o prompt da linha de comando mantém em espera como se estivesse funcionando. A única maneira de ter o CLI pronto é parar brutalmente o serviço com um CTRL + C.

Alguma idéia do que está errado? Obrigado

    
por Andrea Moro 11.06.2014 / 19:49

2 respostas

0

Como sugerido pela @Oli no outro, era uma questão de DNS e resolução de nomes. No entanto, não foi na mesma direção que ele sugeriu.

Descobriu-se que o MySQL estava tentando fazer a resolução IP em cada chamada, causando uma pesquisa de DNS. Como o servidor db é interno e não tinha conexão com o mundo externo, a pesquisa acabaria com o tempo limite.

Resolvi o problema adicionando a diretiva skip-name-resolve no arquivo de configuração my.conf SQL localizado abaixo de /etc/mysql da minha VM.

Agora meu WP local balança.

    
por Andrea Moro 13.06.2014 / 20:29
0

Você pode ver se este é um problema do MySQL rodando (troque os limites das variáveis de tempo de execução):

mysql -uUSERNAME -pPASSWORD DATABASE "show processlist;"

... while acionando uma solicitação. Ele mostrará as consultas em andamento e o tempo que elas levaram. Se você tiver uma consulta particularmente lenta, ela estará lá. Se isso for muito rápido, existem métodos de registro de consultas .

Também poderia ser o Wordpress (ou o seu tema, ou qualquer outro) martelando o banco de dados com pequenas consultas. Como alguém que constrói sistemas on-line, sou perfeitamente qualificado para lhe contar um segredo: Wordpress suga . Oh ok, isso não é um segredo. Você precisa fazer muito para ter um bom desempenho. Para definir você na direção certa (supondo que não seja um modelo mal escrito): plugins de cache!

Na mesma veia, assista htop ao fazer solicitações. O PHP + Wordpress provavelmente será um monstro através de uma grande quantidade de CPU para gerar a página. Pode ser apenas aquilo que está demorando tanto. Se você não pode consertá-lo com o cache (e você está em um computador de 64 bits), você pode tentar o HHVM (o substituto quase completo) para PHP-CGI do Facebook). É muito, muito mais rápido, mas precisa ser instalado. Não é tão simples quanto apt-get install lamp-server^ .

E, finalmente, parece que poderia ser um problema de DNS. Se você está especificando um nome de domínio como seu endereço de banco de dados e sua resolução está demorando para sempre (ou pior, falhando a metade do tempo), isso vai acumular uma conexão. Mude para um IP ( 127.0.0.1 se for local) e tente novamente.

    
por Oli 11.06.2014 / 21:29