Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Projeto experimental comparando gRPC e Thrift

Gustavo Pantuza
September 07, 2021

Projeto experimental comparando gRPC e Thrift

Estudo comparativo de desempenho entre os serviços de Remote Procedure Call gRPC e Thrift em um contexto de micro-serviços utilizando docker.

Projeto final da disciplina Métodos Quantitativos de
Pesquisa Experimental em Ciência da Computação ministrada pela professora Jussara Almeida dentro do programa de pós graduação do departamento de ciência da computação da Universidade Federal de Minas Gerais (UFMG).

Gustavo Pantuza

September 07, 2021
Tweet

More Decks by Gustavo Pantuza

Other Decks in Research

Transcript

  1. Projeto experimental comparando gRPC e Thrift Projeto final da disciplina

    Métodos Quantitativos de Pesquisa Experimental em Ciência da Computação Gustavo Pantuza
  2. Agenda 1. Entenda o problema, estabeleça as perguntas e defina

    os objetivos 2. Selecione métricas 3. Identifique os parâmetros 4. Decida quais parâmetros serão estudados (fatores) 5. Selecione a técnica 6. Selecione a carga de trabalho (workload) 7. Execute experimentos 8. Analise e interprete os resultados 9. Apresente os resultados e dados do experimento 10. Apresente conclusões
  3. Problema Estudo comparativo de desempenho entre os serviços de Remote

    Procedure Call gRPC e Thrift em um contexto de micro-serviços utilizando docker.
  4. 1 Perguntas 1. Quais fatores são significativos em um serviço

    RPC? 2. Existem fatores que são significativos para ambos protocolos? 3. Qual o fator mais significativo para ambos protocolos? 4. Os dois fatores e sua interação são significativos? 5. O modelo é significativo com 99% de confiança? 6. Esses protocolos tem impacto significativamente diferente no serviço RPC? 7. Qual protocolo tem melhor desempenho? 8. Qual a precisão dessa estimativa? 9. Qual protocolo tem desempenho mais previsível?
  5. 1 Parâmetros 1. Número de clientes simultâneos 2. Número de

    requisições por segundo 3. Número de objetos no corpo da resposta (tamanho do payload)
  6. 1. Número de clientes simultâneos a. Variados entre 2 e

    32 2. Número de reqs/seg a. Variados entre 8 e 256 3. Tamanho do payload a. Variados entre 4096 e 65536 Fatores
  7. Tecnicas 1. Projeto Fatorial a. Responde às perguntas: 1 e

    2 i. Quais fatores são significativos em um serviço RPC? ii. Existem fatores que são significativos para ambos protocolos?
  8. Tecnicas 2. Projeto Fatorial completo com dois fatores e replicação

    a. Responde à pergunta: 3, 4 e 5 i. Qual o fator mais significativo para ambos protocolos? ii. Os dois fatores e sua interação são significativos? iii. O modelo é significativo com 99% de confiança?
  9. Tecnicas 3. Comparação de sistemas com teste pareado a. Responde

    às perguntas: 6, 7, 8 e 9 i. Os protocolos têm desempenho significativamente diferente? ii. Qual protocolo tem melhor desempenho? iii. Qual a precisão dessa estimativa? iv. Qual protocolo tem desempenho mais previsível?
  10. Distribuição Poisson onde: = média alvo da população = Número

    aleatório uniforme = variável aleatória seguindo a distribuição poisson que representa o tempo entre chegadas Carga de trabalho
  11. Experimentos Teste pareado • Mesma semente aleatória • Fixado fator

    mais significativo ◦ Tamanho do payload de resposta • 32 replicações ◦ Cada uma enviando 256 requisições ◦ Computado tempo médio de resposta
  12. Perguntas respondidas 1. Quais fatores são significativos em um serviço

    RPC? O 2^kr mostrou que o Número de clientes e Tamanho da resposta são os fatores mais significativos explicando cada um, respectivamente: 47% e 48% no 2^kr com Thrift e 53% e 44% com gRPC. Percentuais que explicam juntos mais de 95% da variação das observações. 2. Existem fatores que são significativos para ambos protocolos? Sim. Em ambos projetos 2^kr os mesmos fatores foram os mais significativos. Em ambos casos o erro experimental representou menos de 1% da variação total dos dados.
  13. Fatorial completo Perguntas respondidas 3. Qual o fator mais significativo

    para ambos protocolos? O fator Tamanho da resposta é o mais significativo explicando aproximadamente 60% da variação dos dados para o gRPC e 55% para o Thrift. 4. Os dois fatores e sua interação são significativos? Sim, com 99% de confiança o teste F mostrou que o número de clientes, o tamanho da resposta e a interação entre eles é significativo. 5. O modelo é significativo com 99% de confiança? Sim. Os intervalos de confiança de todos os parâmetros com 99% de Confiança mostraram ser significativos
  14. Teste pareado Perguntas respondidas 6. Esses protocolos tem impacto significativamente

    diferente no serviço RPC? Sim. O intervalo de confiança da média das diferenças entre os tempos de resposta de cada protocolo não inclui o valor zero com 99% de confiança. 7. Qual protocolo tem melhor desempenho? O protocolo Thrift mostrou ter um tempo médio de resposta inferior ao protocolo gRPC com 99% de confiança sem que as médias interpolem. 8. Qual a precisão dessa estimativa? O erro da estimativa é 0.00654298 e com 99% de confiança a precisão associado é 0.654%, ou seja, menos de 1%. 9. Qual protocolo tem desempenho mais previsível? O protocolo gRPC é mais previsível, pois o coeficiente de variação é menor.
  15. Conclusões • Número de clientes e Tamanho do corpo da

    resposta impactam diretamente na variação do tempo médio de respostas de chamadas RPC • Esses dois fatores são os mais significativos para os dois serviços estudados (gRPC e Thrift) • O Tamanho do corpo da resposta é o mais significativo dos fatores estudados • Em um teste pareado fixando o Tamanho do corpo da resposta e utilizando uma distribuição Poisson o Thrift tem desempenho superior ao gRPC com 99% de confiança