Depurando problemas de desempenho do MySQL

1

Eu trabalho em um site WordPress que recebe aproximadamente 100 mil visualizações de páginas por dia. Nós usamos o verniz para uma camada de cache. Recentemente, nos deparamos com um problema em que, aparentemente de forma aleatória, o desempenho do MySQL é interrompido e desativa nosso aplicativo. Aqui está um gráfico da New Relic para uma interrupção que ocorreu ontem:

Issoaconteceuduasvezesnasemanapassada.Ositefuncionarábemporumasemanasemqueninguémtoquenosservidoresdeprodução,eissoacontecedonada.Otempoderespostausualédecercade500ms,eaquiestáchegandoa60Kms(!).Oproblemaéresolvidoparandooapache,deixandoobancodedadosesfriare,emseguida,iniciandoobackupdoapache.

Nãoéquemaisconsultasestejamsendoexecutadasouqueumaconsultalentaespecíficaestejaemexecuçãoecausandoesseproblema.Seeupegarqualquerumadas"consultas lentas" que estão sendo relatadas pela New Relic e executá-las em qualquer outro momento, elas estão em alta velocidade. Aqui está um gráfico para o rendimento do MySQL para o mesmo período de tempo:

Eu verifiquei as estatísticas dos ganchos e plugins do WordPress, e tudo parece ser normal.

Minha pergunta é: onde devo começar a procurar? Quais configurações do MySQL podem estar causando isso? É provável que seja um problema do MySQL ou é mais provável que seja um problema de aplicativo?

    
por DiscoInfiltrator 27.09.2016 / 16:34

3 respostas

0

Antes de entrar em algo específico para uma aplicação, gostaria de começar com o básico. Não é preciso muito ou muito esforço.

Comece com algumas das coisas básicas / genéricas do diagnóstico do servidor. top / iostat / sobre / htop / iotop / free / df / vmstat, etc ... durante esse período. Relate com o que você encontra. Minha preferência pessoal é atop para muitas coisas (ela também é executada em segundo plano e registra um tipo de log como sysstat). Olhe para a memória, swap, disco IO, carga, etc ... tudo.

Em seguida, observe os logs como o log do kernel (ou a saída do dmesg) e as mensagens do syslog.

Então olhe para o mysql e seus serviços da web quando tudo mais falhar em revelar algo.

    
por 27.09.2016 / 17:19
0

Você tem tudo em uma máquina? Tem certeza de que seu (s) servidor (es) não estão trocando? Durante o problema, você pode verificar com top e amigos se sua carga de trabalho está ligada à CPU / Memória / E / S?

Você coleta esses dados? Se não começar a instalar o systat (sar e amigos), você poderá verificar o que aconteceu no sistema após o problema acontecer.

Em seguida, ative o log lento no PHP e no MySQL:

1) link

2) link

Com esses dados, você pode identificar o possível problema ou entender melhor o que está acontecendo e segmentar melhor seu monitoramento ou adaptar sua configuração ecc.

    
por 27.09.2016 / 17:17
0

Além das outras ferramentas mencionadas, sugiro usar o 'mytop' para ver o que o mysql está fazendo quando fica mais lento. É muito parecido com o topo e mostra estatísticas como consultas / seg, bem como consultas ativas.

    
por 27.09.2016 / 18:38