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 full-size 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 full-size 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 full-size 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 full-size slide

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

    View full-size 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 full-size 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 full-size 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 full-size 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 full-size 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 full-size 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 full-size slide

  12. Carga de
    trabalho

    View full-size slide

  13. Carga de
    trabalho

    View full-size slide

  14. Experimentos

    View full-size slide

  15. Experimentos
    Fatorial

    View full-size slide

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

    View full-size 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 full-size slide

  18. gRPC
    Multiplicativo

    View full-size slide

  19. Thrift
    Multiplicativo

    View full-size slide

  20. 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 full-size slide

  21. gRPC
    Fatorial completo

    View full-size slide

  22. Thrift
    Fatorial completo

    View full-size slide

  23. 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 full-size slide

  24. Teste Pareado

    View full-size slide

  25. 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 full-size slide

  26. 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 full-size slide