Estou procurando ajuda com o que tenho certeza de que é uma pergunta antiga. Eu me encontrei em uma situação de desejo de entender o rendimento da rede com mais clareza, mas não consigo encontrar informações que o façam "clicar"
Temos alguns servidores distribuídos geograficamente, executando várias versões do Windows. Supondo que sempre usamos um host (uma área de trabalho) como fonte, ao copiar dados desse host para outros servidores em todo o país, vemos uma alta variação na velocidade. Em alguns casos, podemos copiar dados em 12MB / s de forma consistente; em outros, estamos vendo 0,8 MB / s. Deve-se notar que, após testar 8 destinos, sempre parecemos estar em 0,6-0,8MB / s ou 11-12 MB / s. No prédio em que estamos preocupados, temos uma conexão OC-3 com nosso ISP.
Sei que existem muitas variáveis em jogo, mas acho que esperava que os especialistas aqui pudessem ajudar a responder a algumas perguntas básicas para ajudar a reforçar minha compreensão.
1.) Para máquinas mais antigas, executando o Windows XP, servidor 2003, etc, com uma placa Ethernet de 100 Mbps e latência típica de 72 ms, 0,8 MB / s soa razoavelmente? Ou você acha que é lento o suficiente para indicar um problema?
2.) A clássica "velocidade mais rápida matemática" de "taxa de transferência = janela / latência TCP" é, no nosso caso, calculada em 0,8 MB / s (64 KB / 72 ms). Meu entendimento é que isso é um limite superior; que você nunca esperaria alcançar (devido à sobrecarga) e muito menos superar essa velocidade. Em alguns casos, porém, estamos vendo velocidades de 12,3 MB / s. Existem aceleradores Steelhead espalhados pela rede, eles poderiam ser responsáveis por uma taxa de transferência tão maior?
3.) Foi sugerido que o uso SMB vs. SMB2 poderia explicar as diferenças de velocidade. De fato, como esperado, as capturas de pacotes mostram ambas sendo usadas, dependendo das versões do SO em execução, como seria de esperar. Entendo o que determina o uso ou não do SMB2, mas estou curioso para saber que tipo de ganho de desempenho você pode esperar com o SMB2.
Meu problema simplesmente parece ser a falta de experiência e, mais importante, a perspectiva, em termos do que são e não são as velocidades de rede razoáveis. Alguém poderia ajudar a transmitir um contexto / perspectiva?
Respostas:
A fórmula matemática a que você está se referindo é, na verdade, a maneira de determinar as configurações de tamanho de janela de transmissão mais eficientes para TCP, e não a largura de banda real disponível. O TCP usa um mecanismo chamado janelas deslizantes que permite o ajuste das velocidades de transmissão com base nas condições da rede. A idéia é que um transmissor TCP envie cada vez mais dados sem exigir uma confirmação do receptor. Se houver perda de dados, a quantidade de dados enviada entre as confirmações diminui, diminuindo também a largura de banda efetiva.
A fórmula em questão realmente determina o tamanho ideal dessa janela de transmissão TCP com base na latência e latência de ida e volta entre um determinado par de hosts. A idéia é ter uma janela dimensionada para que a quantidade de dados 'em voo' corresponda ao que é conhecido como produto de atraso de largura de banda. Por exemplo, se você tiver 50 megabits por segundo (6,25 megaBYTES) e uma latência média de ida e volta de 100ms, terá 6,25 * 0,1 = 625 kilobytes de dados. Esse seria o valor que o TCP negociaria (se configurado corretamente). Como as características de latência e largura de banda dos seus links variam, o tamanho da janela também varia.
O que você precisa é de uma ferramenta de gerenciamento de largura de banda, como o iperf (gratuito), rodando na origem e em vários destinos. Isso deve lhe dar uma idéia da quantidade real de taxa de transferência possível (independente de outros aplicativos), além de fornecer algumas dicas sobre a latência. A execução de um ping estendido entre hosts também fornecerá uma idéia geral das características de latência. Quando você tiver esses dados, terá uma idéia melhor do que deve ver no que diz respeito à taxa de transferência.
BTW - O uso de qualquer tipo de otimizador de LAN geralmente incorpora compactação de dados, otimização de TCP, cache, etc. Embora seja útil, pode obscurecer a natureza dos links subjacentes. Depois de ter uma idéia da largura de banda / atraso brutos (e perda de pacotes, potencialmente), você poderá examinar mais de perto para garantir que seus vários hosts estejam configurados para tirar proveito da largura de banda disponível.
fonte
Tente "ping -l 8092" ou FTP ou HTTP para verificar se é um problema de SMB.
Primeiro de tudo: que mídia você usa para conectar computadores? O que nos "100mpbs"? Ethernet? Você não pode usá-lo para computadores "distribuídos geograficamente", certo?
No caso de roteadores "vpn over Internet", os computadores podem usar links diferentes: um é rápido, outro não. Eles podem escolher o link com base em muitos parâmetros.
Por favor, descreva sua rede.
Isso também pode ser um problema de MTU: vários links podem ter MTUs diferentes.
fonte
Muitos comentários e usuários ofereceram ótimos conselhos aqui. Alguns deles chegaram bem perto do que eu estava procurando, mas também tive a sorte de encontrar um veterano da Rede da nossa empresa que ajudou a esclarecer as coisas. Eu pensei em publicar minhas descobertas / entendimentos aqui para o benefício de outras pessoas. Por favor, sinta-se à vontade para me corrigir se algo disso parecer errado:
1.) A taxa de transferência máxima de uma única sessão TCP com latência de 72ms e uma janela de 64K é de aproximadamente 0,8 MB / s, tornando essa velocidade razoável para cópias de sessão única e thread único, como as que realizamos com robocopy.
2.) Essa diferença de velocidade parece se resumir à eficácia do método de transferência. No nosso caso, estávamos usando Robocopy e Repliweb. Descobri que a robocopy usa uma única sessão TCP, enquanto o Repliweb pode abrir várias sessões para enviar dados.
3.) A pesquisa no site da Microsoft mostra que o SMB2 possui um ganho de desempenho considerável em relação ao SMB1. Entretanto, em alguns casos, houve problemas em como o sistema operacional negocia qual protocolo usar; portanto, deve-se estar ciente de: a) quais casos o SMB2 pode ser usado eb) se o SMB2 está realmente sendo utilizado com base em capturas de rede.
Atualmente, parece que o Wire-shark pode determinar o uso do protocolo SMB2.
Eu espero que isso ajude. Mais uma vez, meu entendimento é bastante rudimentar aqui, fique à vontade para expandir.
fonte