Diagnóstico de desempenho e reconfiguração dinâmica em processamento de dados massivos

Carregando...
Imagem de Miniatura

Título da Revista

ISSN da Revista

Título de Volume

Editor

Universidade Federal de Minas Gerais

Descrição

Tipo

Dissertação de mestrado

Título alternativo

Primeiro orientador

Membros da banca

Jussara Marques de Almeida
Wagner Meira Junior

Resumo

O aumento crescente da quantidade de dados sendo armazenados e a variedade de técnicas propostas para suprir a demanda por processamento de cientistas de dados têm resultado em uma nova geração de ambientes e paradigmas de processamento paralelo e distribuído. Apesar desses ambientes facilitarem a tarefa de programação com abstrações de mais alto nível, obter um bom desempenho continua um desafio. Neste trabalho investigamos fatores impactantes no desempenho de aplicações típicas de processamento massivo de dados e para isso tomamos como base o ambiente Spark. Ao sistematizar a metodologia de análise sobre dimensões de diagnóstico, somos capazes de identificar cenários atípicos que deixam explícitas as limitações do ambiente e das ações comumente utilizadas para mitigação de ineficiências. Validamos nossas observaçõesao demonstrar o potencial de ganho em ajustes manuais de desempenho. Finalmente, aplicamos o conjunto de lições aprendidas através do projeto e implementação de uma ferramenta extensível capaz de automatizar o processo de reconfiguração de aplicações Spark. A ferramenta utiliza como entrada logs de execuções passadas, garante a aplicação de políticas de ajuste sobre as estatísticas coletadas nos logs e leva em conta os padrões de comunicação durante a tomada de decisão. Para isso, a ferramenta identifica configurações globais que são passíveis de alteração ou pontos na aplicação do usuário onde o particionamento pode ser ajustado. Nossos resultados mostram que a ferramenta é capaz de obter ganhos de até 1,9 nos cenários considerados.

Abstract

The increasing amount of data being stored and the variety of algorithms proposed to meet processing demands of the data scientists have led to a new generation of computational environments and paradigms. These environments facilitate the task of programming through high level abstractions; however, achieving the ideal performance continues to be a challenge. In this work we investigate important factors concerning the performance of common big-data applications and consider the Spark framework as the target for our contributions. In particular, we organize our methodology of analysis based on diagnosis dimensions, which allow the identification of uncommon scenarios that provide us with valuable information about the environments limitations and possible actions to mitigate the issues. First, we validate our observations by showing the potential that manual adjustments have for improving the applications performance.Finally, we apply the lessons learned from the previous findings through the design and implementation of a extensible tool that automates the reconfiguration of Spark applications. Our tool leverages logs from previous executions as input, enforces configurable adjustment policies over the collected statistics and makes its decisions taking into account communication behaviors specific of the application evaluated. In order to accomplish that, the tool identifies global parameters that should be updated or points in the user program where the data partitioning can be adjusted based on those policies. Our results show gains of up to 1.9 in the scenarios considered.

Assunto

Balanceamento de carga, Framework (Programa de computador), Computação, Computação de alto desempenho

Palavras-chave

diagnóstico de desempenho, ferramenta, reconfiguração dinâmica, dados massivos, balanceamento de carga

Citação

Departamento

Curso

Endereço externo

Avaliação

Revisão

Suplementado Por

Referenciado Por