Versão curta
Minha rede doméstica é pura gigabit com dispositivos que suportam quadros jumbo de até pelo menos ~ 9000 bytes. Aumentar a configuração do jumbo frame MTU na Synology para 6000 (bytes) aumenta o desempenho (gravação de 810Mbps e leitura de 945Mbps). Definir o valor para 7000 destrói apenas o desempenho de leitura (que diminui até 4 Mbps); o desempenho de gravação permanece rápido.
Isso é inesperado, porque a maioria dos problemas de quadros gigantes não tem uma direcionalidade associada a eles e geralmente é tudo ou nada (os pacotes são descartados em um comutador, não importa de onde eles vieram). Não parece haver nenhuma fragmentação de IP, mas a camada TCP é realmente infeliz. O que poderia causar esse comportamento assimétrico / escamoso e como posso corrigi-lo para suportar a MTU de 9000 bytes completa que todo o meu equipamento deve suportar?
Versão longa
Estas são minhas anotações editadas, feitas ao tentar descobrir isso.
Cliente
Controlador da família Realtek PCIe GBE RTL8167:
Jumbo Frame: 9KB MTU
$ netsh interface ipv4 show subinterfaces
MTU MediaSenseState Bytes In Bytes Out Interface
------ --------------- --------- --------- -------------
9198 1 32501506 11275394 Local Area Connection
(aparece 9198 não inclui o cabeçalho ethernet de 14 bytes)
$ ping -l 1500 -f 192.168.1.84
(observado com o Wireshark em execução no cliente; todos os tamanhos são de bytes de fio)
[9213, ∞] não enviado pelo host (exigiria fragmentação)
[9019, 9212] enviado, mas sem resposta
[9015, 9018] resposta de IP fragmentado
[42, 9014 ] IP não fragmentado
[0, 41]? (não é possível gerar, pois os cabeçalhos eth + IP + ICMP = 14 + 20 + 8 = 42 bytes)
Roteador (parte do switch)
Asus RT-AC68U - Firmware 3.0.0.4.378_4585
Ativar quadro jumbo: "Ativar"
Não é possível descobrir qual o tamanho do quadro jumbo que ele realmente suporta, parece ter pelo menos 9000
Ele fragmenta as solicitações de ping do Cliente em 1514 bytes (mas executar o ping no roteador pode estar provocando o comportamento do roteador WAN em vez do comportamento do comutador da LAN?)
Switch não gerenciado
TP-LINK TL-SG1008D
Jumbo Frames (folhas de especificações): 9KB (o site diz 15KB, mas parece um dispositivo diferente)
Servidor
Synology DS1815 + - DSM 5.2-5565 Atualização 1
Jumbo Frame: 9000
Pacotes de leitura de arquivo da Synology para o
tamanho do cliente : a maioria tem 9014 bytes (em ambas as direções)
Sinalizadores IP: não fragmenta o
Wireshark descoberto: retransmissão espúria TCP, segmento anterior TCP não capturado, TCP fora de ordem, retransmissão rápida TCP, e pacotes normais (9014 bytes) pacotes
de protocolo SMB2 sobre NetBIOS ler resposta de leitura comprimento de leitura: 65.536 (~ 8 segmentos TCP)
$ ifconfig
bond0 Link encap:Ethernet HWaddr --:FF
inet addr:192.168.1.84 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addrs: --/64 Scope:Link, --/64 Scope:Global, --/64 Scope:Global
UP BROADCAST RUNNING MASTER MULTICAST MTU:9000 Metric:1
RX packets:lots errors:85 dropped:0 overruns:0 frame:85
TX packets:lots errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:237 GiB TX bytes:117 GiB
eth2 Link encap:Ethernet HWaddr --:00
UP BROADCAST RUNNING SLAVE MULTICAST MTU:9000 Metric:1
RX packets:lots errors:19 dropped:0 overruns:0 frame:19
TX packets:lots errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:236 GiB TX bytes:83 GiB
eth3 Link encap:Ethernet HWaddr --FF
UP BROADCAST RUNNING SLAVE MULTICAST MTU:9000 Metric:1
RX packets:lots errors:66 dropped:0 overruns:0 frame:66
TX packets:lots errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1 GiB TX bytes:33 GiB
eth2 e eth3 são ligados usando o Adaptive Load Balancing (sem suporte para comutador)
$ ping -c 5 -s 1500 192.168.1.82
(observado com o Wireshark em execução no cliente; todos os tamanhos são de bytes de fio)
[9019, ∞] solicitação enviada, resposta enviada, resposta não recebida
[9015, 9018] solicitação de IP fragmentada (provavelmente fragmentada pela Synology, o busybox ping não tem um opção sem fragmento, por isso é difícil dizer)
[60, 9014] IP não fragmentado
[0, 59]? (não é possível gerar porque o ping do busybox coloca no mínimo 18 bytes mais os cabeçalhos de 42 bytes)
Dados diversos
- Alterar o MTU do cliente para 8 KB não ajudou
- A velocidade de leitura do servidor cai de um penhasco ao alterar o MTU do servidor de 6000 (ótimo, 945Mbps) para 7000 (terrível, 4Mbps)
- A velocidade de gravação do servidor basicamente não é afetada em todas as configurações da MTU do servidor (sempre entre 700 e 825 Mbps)
- O Synology possui uma rede ligada (2 das 4 portas)
- Os cabos são todos Cat6 ou Cat5e
fonte
Respostas:
Atualize o firmware
Na minha experiência, o Synology corrige muitos problemas em cada versão de firmware e a que você está executando tem quase quatro anos. Não li as notas de versão, mas parece haver muitas oportunidades para que um bug do Jumbo frame tenha sido corrigido desde então.
Teste com uma conexão direta
Conecte sua máquina de teste diretamente ao Synology (atribua IPs estáticos na mesma sub-rede) com novos cabos de correção e execute novamente seus testes. Isso eliminará o cabeamento e os switches, bem como quaisquer outros problemas de equipamento e configuração. Se o problema persistir, execute seus testes com outro computador. Se ainda permanece, é certamente o NAS.
Se o problema desaparecer durante o teste de conexão direta, tente substituir o switch primeiro e depois o cabeamento. Você não mostrou as conexões, então estou assumindo apenas o TPLINK entre a máquina de teste e o NAS.
fonte