Pular para o conteúdo principal

Tempos de transferência FTP dolorosamente altos, tempo de resposta de login interativo muito longo, obtendo 1 Mbps da sua rede de 100 Mbps. Embora eu sempre prefira culpar a rede, tenho que admitir que às vezes não é a rede.

A primeira coisa a procurar ao lidar com um problema de desempenho TCP é uma questão de baixo nível da Ethernet e, de longe, a questão mais comum é uma incompatibilidade duplex. A Ethernet pode funcionar no modo full ou half duplex. No modo full duplex, tanto o adaptador do módulo quanto o dispositivo ao qual ele está conectado, seu par de link (normalmente um switch, mas nem sempre), podem transmitir ao mesmo tempo. No modo half duplex, apenas um lado pode transmitir. Há um intervalo de tempo em que ambos os lados podem considerar que está tudo bem para transmitir e o fazem. Quando isso acontece, é declarada uma colisão, ambos os lados param de transmitir, esperam um tempo aleatório e tentam novamente. É importante entender que, quando ambos os lados estão no modo half duplex, essas colisões não reduzem significativamente a taxa de transferência da rede.
Em uma incompatibilidade duplex, um lado está no modo full duplex e seu par de link está no modo half duplex. O lado no modo half duplex pode sofrer colisões tardias e colisões excessivas, esses tipos de erros reduzem significativamente a taxa de transferência.  Quaisquer colisões tardias ou excessivas são um indício de problema. A lentidão da rede pode parecer desproporcional ao número de colisões tardias e excessivas porque, em uma condição de incompatibilidade duplex, mesmo colisões normais reduzirão a taxa de transferência, pois o par de link não retransmitirá o quadro, uma vez que não reconhecerá uma colisão no modo full duplex.
Então, como saber se isso está acontecendo com você? O “netstat -interface” exibirá as estatísticas que permitirão determinar se está ocorrendo uma incompatibilidade duplex. No exemplo a seguir, as estatísticas para o adaptador ativo do #sdlmux.m16.11-3 A interface é exibida. Removi as estatísticas do adaptador em espera para economizar espaço e adicionei os números das linhas.
Se o adaptador estiver no modo half duplex, você verá contagens positivas nas linhas 25 (quadro de transmissão foi adiado), 26 (quadro de transmissão após uma única tentativa) e 27 (quadro de transmissão após várias tentativas). Esses são os contadores de colisão normais. Se você vir contagens positivas nas linhas 24 (quadro de transmissão descartado, colisões tardias) e/ou 28 (quadro de transmissão descartado, tentativas excessivas), você provavelmente tem ou teve uma incompatibilidade duplex. Esses contadores só são reiniciados quando o adaptador é reiniciado, portanto, valores positivos são uma indicação de que houve um problema; contadores que continuam a subir são uma indicação de que você ainda tem um problema. Se o adaptador estiver no modo full duplex e você vir um valor positivo na linha 32 (Quadro de recepção descartado, CRC inválido), o par de ligação provavelmente está no modo half duplex.
1    netstat -interface #sdlmux.m16.11-3
2
3    Ethernet adapters are grouped
4    Number of failovers = 0
5
6    Active Device Statistics:
7
8
9    MAC Type   : CSMA/CD
10    MAC Address: 00:00:a8:43:52:22
11    Device Name: #sdlmux.m16.11-3
12    Line Speed : 100 mb/s
13    Line Duplex: Full-Duplex
14
15    MAC Statistics:
16     Received frames                          : 20783181
17     Received multicast and broadcast frames : 2984375
18     Received octets                          : 1787913869
19     Transmitted frames                       : 9747015
20     Transmitted octets                       : 2780485819
21     LAN Chipset re-initialized               : 0
22     SQE error                                : 0
23     Transmit ring full                       : 0
24     Transmit frame discarded, late collisions: 0
25     Transmit frame was deferred              : 0
26     Transmit frame after a single retry      : 0
27     Transmit frame after multiple retry      : 0
28     Transmit frame discarded, excessive retry: 0
29     Receive frame discarded, lack of buffers : 0
30     Receive frame discarded, improper framing: 0
31     Receive frame discarded, an overflow     : 0
32     Receive frame discarded, bad CRC         : 674
33     Receive frame discarded, bad address     : 0
34     Receive frame discarded, congestion      : 0
35
36    MAC Summary:
37     Transmitted frames         : 9747015
38     Transmitted octets         : 2780485819
39     Retransmitted frames       : 0
40     Received frames            : 23767556
41     Received octets            : 1787913869
42     Total of lost frames       : 0
43    Partner Device Statistics:
. . . .
ready 08:35:14
Como você chegou a esse cenário de incompatibilidade duplex? É claro que é possível ter um dispositivo configurado para funcionar no modo full duplex e o par de link configurado para o modo half duplex, MAS o cenário mais comum é ter um dispositivo configurado para full duplex e o par de link configurado para negociação automática. A maioria dos dispositivos, quando configurada para full duplex, não faz negociação automática e, de acordo com a especificação de negociação automática, o lado que tenta negociar automaticamente deve voltar ao modo half duplex quando não vê o protocolo de negociação automática do par de link.
Por padrão, os adaptadores Ethernet usados pelo OpenVOS farão a negociação automática, portanto, a menos que o par de conexão também esteja configurado para negociação automática ou modo half duplex, você terá uma incompatibilidade de duplex. Para definir um adaptador para um modo duplex específico, você precisa adicionar o “-duplex full” ou “-duplex half” string no campo de parâmetros na entrada devices.tin para o adaptador. Você também deve definir a velocidade. O Guia do Administrador do OpenVOS Streams TCP/IP (R419) descreve isso em detalhes.
Uma observação final: se o adaptador estiver funcionando a 1 gigabit, ele também estará funcionando no modo full duplex. Ninguém suporta half duplex gigabit.

© 2024 Stratus Technologies.