Por que minha velocidade de transferência de rede local diminui com arquivos maiores?

2

Versão resumida: Eu tenho um servidor Linux (RHEL5) e um laptop com Windows 7 Professional em uma rede com fio local. Copiar arquivos grandes para o servidor fica gradualmente mais lento até que pare completamente.

Versão longa

Há um compartilhamento do Samba no servidor, ao qual posso me conectar, e tenho acesso de leitura / gravação.

Todas as transferências do servidor para o laptop funcionam bem, mas as transferências do laptop para o servidor parecem ter sua velocidade acelerada e, às vezes, falham completamente.

Arquivos pequenos são transferidos, mas arquivos com mais de 2MB geralmente falham.

Para testar se isso era um problema do Samba ou qualquer outra coisa, tentei copiar alguns arquivos do laptop para o servidor usando scp (Putty's pscp ). Um arquivo de 1MB é copiado quase instantaneamente, 2MB leva 3 minutos e 3,7MB leva 18 minutos. Então não é específico para o Samba.

Além disso, com o Samba e o SCP, posso copiar vários MB de arquivos muito pequenos sem problemas.

O que poderia estar causando esse comportamento? Eu ficaria muito grato por qualquer conselho.

O Windows apresenta esta mensagem de erro:

There is a problem accessing H:\
Make sure you are connected to the network and try again

No servidor, ifconfig mostra alguns erros:

eth0      Link encap:Ethernet  HWaddr 00:22:19:AD:52:E2
          inet addr:192.168.1.7  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::222:19ff:fead:52e2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4125439 errors:72181 dropped:0 overruns:0 frame:0
          TX packets:3575918 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4481289749 (4.1 GiB)  TX bytes:581533090 (554.5 MiB)
          Interrupt:169 Memory:dfdf0000-dfe00000

/var/log/messages :

Aug 16 14:50:16 dev smbd[475]: [2013/08/16 14:50:16, 0] lib/util_sock.c:read_data(540)
Aug 16 14:50:16 dev smbd[475]:   read_data: read failure for 4 bytes to client 192.168.1.12. Error = Connection reset by peer
Aug 16 14:50:16 dev smbd[475]: [2013/08/16 14:50:16, 0] lib/util_sock.c:write_data(568)
Aug 16 14:50:16 dev smbd[475]:   write_data: write failure in writing to client 192.168.1.12. Error Broken pipe
Aug 16 14:50:16 dev smbd[475]: [2013/08/16 14:50:16, 0] lib/util_sock.c:send_smb(767)
Aug 16 14:50:16 dev smbd[475]:   Error writing 75 bytes to client. -1. (Broken pipe)

/var/log/samba/smbd.log :

[2013/08/16 14:50:16, 0] lib/util_sock.c:read_data(540)
  read_data: read failure for 4 bytes to client 192.168.1.12. Error = Connection reset by peer
[2013/08/16 14:50:16, 0] lib/util_sock.c:write_data(568)
  write_data: write failure in writing to client 192.168.1.12. Error Broken pipe
[2013/08/16 14:50:16, 0] lib/util_sock.c:send_smb(767)
  Error writing 75 bytes to client. -1. (Broken pipe)
[2013/08/16 14:50:16, 1] smbd/service.c:make_connection_snum(1077)
  liam-pc (192.168.1.12) connect to service external initially as user liam (uid=502, gid=502) (pid 529)

EDIT: Se eu inicializar no Ubuntu no laptop, não tenho problema para copiar arquivos grandes para o compartilhamento SMB no servidor. Portanto, o problema é com o Windows 7 ou com a combinação do Windows 7 / RHEL5.

    
por Liam 16.08.2013 / 16:14

3 respostas

1

Eu corri service network restart e parece ter resolvido o problema. Isso parece um pouco estranho, porque o problema existe há mais de um ano, e o servidor foi reiniciado várias vezes desde então. Eu copiei um arquivo de 365MB para o servidor em 70s, com uma média de 5,2MB / s, sem erros.

    
por 26.08.2013 / 12:25
0

Parece um problema de rede ou uma incompatibilidade entre as versões Windows e Linux Samba.

Você já tentou conectar o laptop diretamente ao servidor? Se funcionar bem com o Ubuntu, não deve ser o problema, mas você pode tentar.

Você deve fazer algumas capturas de tráfego para ver o que realmente acontece na sua rede. Você pode compartilhá-lo aqui e talvez possamos encontrar o problema.

Se nada mais funcionar, você pode tentar esta ferramenta de análise . Achei muito interessante, você pode fazer upload de um arquivo pcap e eles enviam uma análise por e-mail. Como pude ver, você pode enviar seu problema no formulário.

    
por 22.08.2013 / 11:22
0

Eu encontro este problema devido aos interruptores D-link baratos. Por exemplo, o DGS-1008D. Esse problema é o mesmo para smb e nfs.

Eu uso o wget e o servidor http interno para identificar problemas com a rede:

wget http://static-http.example.local/1024mb_file -O /dev/null

Você pode usar qualquer host como servidor http interno usando python:

python -m SimpleHTTPServer 8000

Isso servirá os arquivos relativos ao diretório atual no servidor

Em seguida, use o seguinte comando no cliente:

wget http://host:8000/bigfile.tgz -O /dev/null

Se você tiver uma rede Gigabit, deverá obter velocidade em torno de 90-100Mb / s. Se você tiver uma rede de 10 Mbits, deverá obter velocidade em torno de 10 Mb / s.

Esta velocidade pode ser alcançada no segundo attepmt para ler, porque os arquivos são armazenados em cache. Antes, como os arquivos serão armazenados em cache, você receberá a velocidade de leitura do disco.

Mas se você encontrar problemas de rede com Ethernet, você receberá 10 vezes menos velocidade que o normal

O interruptor de ligar / desligar resolve o problema, mas por algum tempo.

    
por 28.09.2015 / 10:43