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

    View Slide

  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

    View Slide

  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.

    View Slide

  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?

    View Slide

  5. Métrica
    Tempo médio de resposta de um serviço RPC em
    milissegundos

    View Slide

  6. 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)

    View Slide

  7. 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

    View Slide

  8. 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?

    View Slide

  9. 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?

    View Slide

  10. 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?

    View Slide

  11. 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

    View Slide

  12. Carga de
    trabalho

    View Slide

  13. Carga de
    trabalho

    View Slide

  14. Experimentos

    View Slide

  15. Experimentos
    Fatorial

    View Slide

  16. Experimentos
    Fatorial completo com 2 fatores e replicação

    View Slide

  17. 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

    View Slide

  18. gRPC

    View Slide

  19. gRPC
    Multiplicativo

    View Slide

  20. Thrift

    View Slide

  21. Thrift
    Multiplicativo

    View Slide

  22. 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.

    View Slide

  23. gRPC
    Fatorial completo

    View Slide

  24. Thrift
    Fatorial completo

    View Slide

  25. 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

    View Slide

  26. Teste Pareado

    View Slide

  27. 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.

    View Slide

  28. 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

    View Slide