BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias LinkedIn desenvolve a ferramenta MySQL Query Analyzer

LinkedIn desenvolve a ferramenta MySQL Query Analyzer

Para otimizar o desempenho de suas instâncias MySQL, o LinkedIn criou a ferramenta MySQL Query Analyzer com o intuito de analisar e ajustar queries custosas. A ferramenta é executada na camada de rede, armazenando tudo em um servidor centralizado e fornecendo uma interface de usuário (UI) para análise de métricas.

O LinkedIn administra uma arquitetura MySQL multi-inquilinos (do inglês multi-tenancy). Isto ocorre principalmente pelo fato de haver mais de 500 aplicativos que dependem dessa arquitetura, de modo que um único inquilino (tenancy) causaria custos de recursos extremamente elevados. Como consequência desta abordagem, as queries de um aplicativo podem afetar o desempenho de outro aplicativo. Por esse motivo, é importante que os aplicativos sejam capazes de compreendê tais consultas e otimizá-las o máximo possível.

O analisador de queries é dividido em três componentes:

  1. Agente: é executado nos nós do MySQL e coleta métricas sobre a execução e desempenho de queries.
  2. Servidor centralizado: local onde todos os dados sobre consultas são armazenados para a geração de relatórios.
  3. Interface de Usuário (UI): fica no topo do servidor e fornece uma interface amigável para analisar os dados.

Karthik Apigatla, engenheiro sênior de banco de dados no LinkedIn, destaca os benefícios da ferramenta da seguinte maneira:

... permite que nossos engenheiros de banco de dados identifiquem queries problemáticas de uma só vez, para comparar as informações de uma query semana a semana e para solucionar problemas de desaceleração da base de dados de forma rápida e eficiente.

Originalmente, soluções como o MySQL Performance Schema e o Slow Query Log foram consideradas, mas elas vieram com muitas penalidades de desempenho quando foram introduzidas. Ao contrário dessas ferramentas, o Query Analyzer é executado na camada de rede, minimizando qualquer tipo de impacto de desempenho nas instâncias.

O agente captura pacotes brutos de queries e reconstrói a query usando os protocolos MySQL e, em seguida, calcula os tempos de resposta com base em uma diferença entre o tempo em que os pacotes entram pela primeira vez na porta e quando são produzidos pela resposta do banco de dados.

A UI fornece uma visão tabular de queries distintas para hosts, permitindo que o usuário filtre por períodos de tempo. As consultas individuais também podem ser selecionadas, fornecendo gráficos e outras métricas úteis, como carga e tempo médio.

A ferramenta também fornece uma métrica de carga de query que é calculada como "tempo de execução * número de execuções". Ao obter essa métrica e convertê-la em uma proporção, ela pode ser comparada com outras queries para ver quais obtiveram a maior porcentagem de carga. Por exemplo, mesmo se uma consulta demorar alguns milissegundos, a métrica ainda seria correta se a query estivesse sendo executada muitas vezes, levando assim a maior parte da carga.

O LinkedIn não definiu uma linha de tempo específica, mas pretende abrir a ferramenta em um futuro próximo.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT