Estime se a taxa de transferência da rede for atingida

2

Eu tenho 2 processos se comunicando por TCP / IP da seguinte forma: o processo A envia 20 KB de dados para o processo B e após alguns cálculos, o processo B envia a resposta (2KB) de volta para A.

Quando executo os dois processos no mesmo computador 100 vezes em um loop (EDITED: toda vez que eu aguardo a resposta da iteração anterior antes de enviar uma nova tarefa), o tempo total de execução é de 15 segundos. Quando os executo em máquinas diferentes conectadas à rede de 1 Gbps, o tempo total de execução aumenta para 30 segundos. Então eu suponho que 15 segundos são necessários para a comunicação pela rede.

Eu gostaria de saber se esse é um tempo de comunicação razoável (15 segundos / 100 vezes = 0,15 segundos para enviar uma tarefa e obter resposta) para a taxa de transferência de rede especificada e a quantidade de dados a serem enviados. Se pode ser mais rápido (o que eu penso), onde devo olhar (firewall, roteamento, etc)?

O SO usado é o Windows 7 Ultimate, se for relevante.

    
por AdelNick 09.01.2014 / 13:19

2 respostas

2

A taxa de transferência real da rede não deve ser um fator importante, já que você nem chega perto de saturar um link de 1 Gbps.

Agora que seu aplicativo deve agora percorrer as camadas 1 a 6 do modelo OSI e, em seguida, fazer o backup para a camada do aplicativo na extremidade de recebimento, cada etapa do caminho adicionará uma quantidade muito pequena de latência ao conexão.

No entanto, o que foi dito - 150 milissegundos é um bom tempo para uma quantidade tão pequena de dados (20KB burst com retorno de 2KB), então a menos que sua rede esteja congestionada, ou tenha alguma QoS restrita, então não há razão para isso da rede deve fazer com que demore tanto tempo. Você mesmo pode testar isso se quiser - enviar um pacote ICMP de 20 KB de tamanho e ver quanto tempo leva para obter uma resposta. (ping X.X.X.X -l 20480).

Mas, para ser honesto, há muitos outros fatores em jogo aqui, e executar 100 instâncias do seu aplicativo de uma só vez está tornando as coisas mais complicadas. Quanto tempo leva realmente quando você executa uma única instância?

    
por 09.01.2014 / 14:28
1

Não parece certo que este seja um problema de capacidade de rede (a menos que algo esteja consumindo a largura de banda). Quando tudo estiver dito e feito, sua transferência total de dados para as 100 transações é de 2,2 MB, o que não é nada realmente.

  • Verifique o uso da rede por outros sistemas - duvido que isso seja um problema.
  • O sistema remoto processa os dados tão rapidamente quanto o local.
por 09.01.2014 / 14:03