Estou tendo alguns problemas com a velocidade de desempenho da rede em um servidor Linux executando o Ubuntu 9.10. As velocidades de transferência em todos os tipos de tráfego são de cerca de 1,5 MB / s em uma conexão Ethernet com fio de 1000mbit / s. Este servidor alcançou 55 MB / s sobre o samba no passado recente. Não alterei o hardware ou a configuração de rede. Realizo atualizações regularmente e o melhor e o mais recente dos repositórios do Ubuntu estão sendo executados nesta máquina.
Configuração de hardware
PC Windows Desktop - switch 1000 - switch 1000 - servidor Linux
Todos os comutadores são de rede e todos mostram uma luz verde para suas conexões, o que significa que a conexão é de 1000mbit / s. As luzes ficam amarelas quando a conexão é de apenas 100mbit / s. Outras informações de diagnóstico:
root@server:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:6e:3e:ae:36
inet addr:192.168.1.30 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:6eff:fe3e:ae36/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28678 errors:0 dropped:0 overruns:0 frame:0
TX packets:73531 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2109780 (2.1 MB) TX bytes:111039729 (111.0 MB)
Interrupt:22
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:113 errors:0 dropped:0 overruns:0 frame:0
TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:23469 (23.4 KB) TX bytes:23469 (23.4 KB)
root@server:~# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pg
Wake-on: g
Current message level: 0x00000037 (55)
Link detected: yes
root@server:~# mii-tool
eth0: negotiated 1000baseT-FD flow-control, link ok
O servidor acha que possui uma conexão de 1000mbit / s. Testei a velocidade da transferência, copiando arquivos usando o Samba. Também usei o netcat (nc target 10000 <aBigFile) no servidor para transferir para o Windows (nc -l -p 10000) e vi níveis semelhantes de desempenho ruim.
Testei a velocidade dos discos rígidos usando o hdparm e obtive:
root@server:~# hdparm -tT /dev/md0
/dev/md0:
Timing cached reads: 1436 MB in 2.00 seconds = 718.01 MB/sec
Timing buffered disk reads: 444 MB in 3.02 seconds = 147.24 MB/sec
A leitura do mesmo arquivo para transferência usando DD produziu o seguinte:
paul@server:/home/share/Series/New$ dd if=aBigFile of=/dev/null
3200369+1 records in
3200369+1 records out
1638589012 bytes (1.6 GB) copied, 12.7091 s, 129 MB/s
Estou perplexo. O que poderia estar causando o desempenho ruim da rede, que é duas ordens de magnitude menor do que o que a rede é capaz?
fonte
Respostas:
Algumas coisas que você deve considerar verificar:
O netperf é excelente para solucionar problemas de desempenho da rede. Mas netcat não é ruim em uma pitada.
fonte
Na minha experiência profissional, lutei para obter um bom desempenho sólido de rede com o Samba no GNU / Linux. Você mencionou que alcançou velocidades de 55 MBps com ele, o que eu acredito, então acho que outra coisa está definitivamente em jogo.
No entanto, você já experimentou NFS, FTP e SCP? Os problemas de largura de banda são consistentes nos diferentes protocolos? Nesse caso, é provável que tenha se reduzido à conexão física. Se você obtiver resultados inconsistentes, é provável que seja um problema de software.
Além de testar os outros protocolos, você está usando criptografia na transferência? Por exemplo, usar
rsync -z
é bom para ativar a compactação, mas tem um custo de CPU, o que afeta severamente a velocidade geral da transferência. Se estiver usandoSSH
comrsync
, você terá criptografia em cima da compactação e sua CPU sofrerá um pouco de estresse, causando severas penalidades de velocidade.fonte
netstat -i
procurar por erros rx / tx.netstat -s
procurar por problemas de tcp - compare os valores antes e depois da cópia do arquivo e procure picos grandes em redefinições ou retransmissões.fonte
Você pode verificar o congestionamento da sua rede; talvez alguns outros dispositivos estejam consumindo toda a sua largura de banda?
Além disso, talvez algo esteja errado com sua interface de rede e / ou seu driver. Bem estranho.
fonte
Se possível, para remover a maior dúvida de que é realmente um problema de SO / driver / cartão, conecte os computadores usando um cabo cruzado. Isso removerá o switch e outros possíveis problemas de rede da sua equação.
fonte