Determinando os contribuidores para o tempo decorrido durante uma solicitação de rede

0

A situação:

  • Existe um servidor remoto.
  • Estou executando um programa cliente que faz chamadas para o servidor e solicita dados.
  • Essas solicitações são executadas muito lentamente.
  • O servidor limita o número de resultados a 50 e pagina o resto. Então, se houver 300 resultados totais, tenho que fazer um total de 6 solicitações separadas.
  • (comentário de Per James) Os dados estão no formato de texto JSON.
  • (outro comentário de Per James) A conexão é uma conexão https (SSL).

O proprietário do servidor ofereceu aumentar o número de resultados por página para que eu possa fazer menos solicitações.

Embora eu ache que isso vai ajudar, estou preocupado que isso ainda não torne a transação rápida o suficiente para meus propósitos. Eu me pergunto: E se o problema não é a sobrecarga do servidor para recuperar dados? E se o maior impacto no desempenho se deva à largura de banda e latência da rede?

Como eu descobriria isso? Eu não tenho acesso ao servidor. Digamos que uma solicitação leve 3 segundos para ser concluída. Então:

  1. Qual parte desses 3 segundos é gasta abrindo a conexão TCP?
  2. Qual parte é gasta enviando os dados da solicitação?
  3. Qual parte é gasta aguardando o servidor recuperar os dados?
  4. Qual parte é gasta aguardando que todos os dados solicitados cheguem à minha máquina?

Eu realmente não quero ter que rolar meu próprio código TCP / IP para obter o acesso de baixo nível necessário para medir coisas como esta.

Tenho certeza de que tem que haver ferramentas escritas para isso. Como eu Google em torno, vejo programas como netstat, ss, netperf, ttcp, etc Mas eu não tenho certeza quais palavras usar em uma pesquisa no Google para procurar soluções para este problema.

Alguma idéia?

    
por Aaron Johnson 02.05.2013 / 23:50

0 respostas