Solução de problemas de velocidade de rede - o inquérito antigo


18

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?


as diferenças de velocidade não são apenas SMB versus SMB 2. lembre-se de que, no Vista e acima da pilha de rede, não há mais um complemento baseado em * nix e é integrado ao sistema operacional, permitindo latência e sobrecarga muito mais baixas.
Jim B

Obrigado Jim, é bom saber. Sim, eu sei que há um bilhão de variáveis ​​a montante e a jusante, dependendo de onde você está procurando na pilha OSI. Um colega de trabalho propôs que talvez a diferença de velocidade possa ser simplesmente uma questão de "SMB vs. SMB2". Eu acho que eu sou cético de SMB2 (0,1) nos dando um aumento de velocidade de 10x, mas novamente, eu só não estou versado o suficiente nas artes Aracne saber;)
Univ426

Ótima pergunta! Alguma atualização sobre isso? E fwiw, uma caixa de Windows XP que está a partilhar, mas não "logado" transfere arquivos mais rápido do que um com um usuário logado.
Chris K

Respostas:


4

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.


Obrigado pela ótima informação rnxrx. As janelas deslizantes usadas no TCP fazem muito sentido. No nosso caso, como o único tráfego com o qual estamos preocupados é passar pelo TCP, acho que minha pergunta está fortemente focada no TCP. Usamos outros métodos de transferência de dados (como repliweb) e alcançamos um rendimento muito maior (até 11 MB / s). No entanto, eu não estava ciente do produto do atraso da largura de banda, é ótimo saber!
Univ426

2

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.


Obrigado llya. Atualizei a pergunta para responder à sua. Essa é uma rede ethernet normal, com uma placa de rede de 100 Mbps no host de origem.
Univ426

Josh, ainda não consigo entender: ((você conecta seu PC ao servidor usando 100BASE Ethernet? Mesmo se você usa 100BASE-LX10 (ethernet sobre duas fibras ópticas), não pode conectar dois computadores "em todo o país": ele limite de distância de cerca de 10 Quilômetros.E no caso de Ethernet você usa switch (qual?) ou conecta computadores diretamente? E, por favor, conte-me sobre latência: como você conseguiu "72 ms"? como você calculou isso? Obrigado
Ilya

Estamos passando por uma LAN local para a interenet pública, para um datacenter e depois para o servidor através de uma intranet corporativa. A latência foi determinada usando ping. Nós passamos por vários switches como seria de esperar. O switch mais próximo tem uma velocidade negociada automaticamente confirmada com o host de 100 Mbps. Espero que ajude.
Univ426

11
Nota: a largura de banda com a qual você realmente se preocupa não é os 100M da sua conexão LAN, mas o link mais lento entre os pontos de extremidade. Este poderia ser o seu link WAN ou algum link intermediário mais lento.
Rnxrx 03/06/12

Esse é um ótimo ponto, vou atualizar a pergunta, mas sei que estamos conectados ao nosso ISP por meio de um OC-3. Preciso imaginar que tudo a montante disso é de pelo menos 100 Mbps, e sei que a infraestrutura do prédio é de 100M ou 1G até a conexão.
precisa saber é o seguinte

2

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.


11
Além dos cálculos de atraso da largura de banda, saiba que o SMB2 melhora enormemente o desempenho em um link de latência mais alta, pois não espera o servidor reconhecer uma gravação antes de transferir mais dados. De fato, vemos ganhos de taxa de transferência de 10x com o SMBv2 em nossas conexões WAN usando o ROBOCOPY. Considere também o segmento / MT com robocopy, se você estiver copiando muitos arquivos; ele faz até 8 em paralelo por padrão.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.