Pular para o conteúdo principal
Acabamos de fazer um upgrade de um T1 (1,544 Mbps) para um T3 (44,736 Mbps), então por que ainda leva 90 minutos para copiar esse arquivo?

 

A resposta simples é que mais capacidade não é o mesmo que bytes mais rápidos. Se você aumentar sua capacidade em quase 29 (44,736 / 1,544) vezes, poderá copiar 29 arquivos nos mesmos 90 minutos, mas provavelmente não conseguirá copiar aquele arquivo mais rapidamente. Abordei esse assunto no ano passado no blog intitulado “Problemas de desempenho de aplicativos e latência”, mas acho que as transferências de arquivos e o copy_file merecem um blog mais detalhado.

 

A chave tem a ver com os tamanhos das janelas, ou seja, quantos bytes o host/aplicativo remetente pode enviar sem ter que parar e aguardar uma confirmação do host/aplicativo receptor. Alguns aplicativos, como o FTP, não têm uma camada de confirmação do aplicativo e dependem do TCP. Nesse caso, o tamanho da janela é baseado no que a camada TCP do host remoto anuncia, até 64K bytes, que é o máximo que o STCP suporta. Alguns aplicativos têm uma janela na camada de aplicativo; para esses aplicativos, a janela limitante é a menor entre as janelas TCP e do aplicativo.
A taxa de transferência máxima é calculada como

 

W / RTT = T
Onde
W é o tamanho da janela em bytes
RTT é o tempo de ida e volta em segundos.
T é a taxa de transferência em bytes por segundo
O tempo de ida e volta é o tempo que leva para enviar alguns dados e obter a confirmação. Para grandes distâncias, ou seja, entre países, esse tempo é baseado principalmente na distância que os bytes devem percorrer e na velocidade de processamento de todos os equipamentos de rede entre os pontos finais. A velocidade de processamento do host receptor, os tamanhos dos pacotes (valor TCP MSS, consulte “Uma maneira fácil de melhorar a taxa de transferência entre sub-redes”) e, claro, a largura de banda do link mais lento desempenham papéis menos importantes.

 

Por exemplo, se o RTT for 0,050 segundos e a janela for 64K, a taxa de transferência máxima será de 1.310.720 bytes por segundo (64 * 1024 / 0,050). Desde que a capacidade não utilizada do link seja maior do que a taxa de transferência, aumentar a capacidade não acelerará o tempo de transferência.
T é a taxa de transferência máxima possível. Nada que você faça (exceto aumentar a janela ou reduzir o RTT) pode tornar as coisas mais rápidas, MAS condições hostis da rede podem tornar as coisas consideravelmente mais lentas.

 

Estimar o tempo de transferência é apenas dividir o tamanho do arquivo pela taxa de transferência.

 

F/ W * RTT = Ti
Onde
F é o tamanho do arquivo em bytes
W é o tamanho da janela em bytes
RTT é o tempo de ida e volta em segundos.
Ti é o tempo em segundos para transferir o arquivo

 

O OSL tem um tamanho de janela de aplicativo de 4K, o sistema de arquivos OpenVOS relata tamanhos de arquivo em blocos de 4K bytes, portanto, para estimar o tempo para copiar um arquivo entre dois sistemas OpenVOS usando o comando copy_file, basta

 

F * RTT = Ti
Onde
F é o tamanho do arquivo em blocos
RTT é o tempo de ida e volta em segundos.
Ti é o tempo em segundos para transferir o arquivo

 

Em um link com um RTT de 0,050 segundos, o OSL levará pouco mais de 41 minutos para copiar um arquivo de 50.000 blocos (50.000 * 0,05). A taxa de transferência máxima será de 81.920 bytes por segundo (4096 / 0,050). Contanto que a capacidade de rede não utilizada do seu link seja superior a 81.920 bytes por segundo, adicionar capacidade não reduzirá o tempo necessário para copiar o arquivo.

 

A maneira mais simples de medir o tempo de ida e volta é com o ping. Infelizmente, o ping não fornece um único número para o RTT, mas vários números, e esses números podem variar significativamente, por exemplo:

 

ping 172.16.1.80
Pinging host 172.16.1.80 : 172.16.1.80
ICMP Echo Reply:TTL 53 time = 418 ms
ICMP Echo Reply:TTL 53 time = 107 ms
ICMP Echo Reply:TTL 53 time = 91 ms
ICMP Echo Reply:TTL 53 time = 100 ms
Host 172.16.1.80 replied to all 4 of the 4 pings
ready 12:03:15

 

Se você estiver interessado em calcular a melhor taxa de transferência possível, use o número mais baixo. Se você estiver interessado em uma estimativa razoável do que deve esperar, use uma contagem de ping de 10, descarte os dois números mais altos e os dois mais baixos e calcule a média dos restantes.

 

ping 172.16.1.80 -count 10
Pinging host 172.16.1.80 : 172.16.1.80
ICMP Echo Reply:TTL 53 time = 89 ms
ICMP Echo Reply:TTL 53 time = 96 ms
ICMP Echo Reply:TTL 53 time = 95 ms
ICMP Echo Reply:TTL 53 time = 105 ms
ICMP Echo Reply:TTL 53 time = 186 ms
ICMP Echo Reply:TTL 53 time = 87 ms
ICMP Echo Reply:TTL 53 time = 90 ms
ICMP Echo Reply:TTL 53 time = 90 ms
ICMP Echo Reply:TTL 53 time = 89 ms
ICMP Echo Reply:TTL 53 time = 96 ms
Host 172.16.1.80 replied to all 10 of the 10 pings
ready 12:12:39
calc 96 + 95 + 90 + 90 + 89 + 96
556
ready 12:12:49
calc 556 / 6
92.6666666666667
ready 12:12:57

 

Como mencionei acima, uma rede hostil pode retardar significativamente as operações. Os tempos limite de ping são uma indicação disso. Portanto, quaisquer tempos limite significam que esses cálculos são provavelmente muito otimistas. As transferências também podem ser retardadas por discos e/ou CPUs ocupados, que impedem o remetente de ler e enviar os dados o mais rápido possível ou fazem com que o destinatário leia os dados mais lentamente do que a taxa de chegada, atrasando as confirmações do aplicativo (aumentando o tempo de ida e volta) e possivelmente enchendo os buffers de recepção TCP, o que faz com que o host remetente pare de transmitir. A única maneira de saber se alguma dessas condições se aplica é com um rastreamento de pacotes.

© 2024 Stratus Technologies.