Largura de banda gigabit aleatória com meu servidor de arquivos Samba

1

Eu possuo um servidor de arquivos pessoal, construído em uma plataforma AMD X2, com um adaptador de rede CT gig gigabyte, executando o debian 6.0.

Eu criei um raid5 (2 a x 3), compartilhado pelo samba 3.5.6

Do meu computador de mesa (windows7), ao copiar arquivos grandes, às vezes a velocidade de download / upload é constante em torno de 55 / 60Mb / s, às vezes, é realmente instável, cai para 1 ou 2Mb / s, com um máximo de 20 / 30Mb / s, realmente instável.

Eu testei também usando compartilhamentos samba no raid e no disco principal, os resultados são similares.

Eu executei hdparm -tT no servidor:

/dev/sda:
  Timing cached reads:   4698 MB in  2.00 seconds = 2349.11 MB/sec
  Timing buffered disk reads: 374 MB in  3.00 seconds = 124.49 MB/sec

/dev/md0:
 Timing cached reads:   4814 MB in  2.00 seconds = 2407.76 MB/sec
 Timing buffered disk reads: 640 MB in  3.00 seconds = 213.02 MB/sec 

Além disso, usei o iperf para testar a largura de banda entre os dois computadores:

iperf.exe -c pacem -n 1073741824 -fm
------------------------------------------------------------
Client connecting to pacem, TCP port 5001
TCP window size: 0.06 MByte (default)
------------------------------------------------------------
[  3] local 10.0.0.145 port 50913 connected with 10.0.0.37 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-68.7 sec  1024 MBytes   125 Mbits/sec 

Como posso proceder para encontrar com eficiência onde está o problema?

Obrigado pela leitura!

    
por Obscur Moirage 25.02.2013 / 12:12

1 resposta

5

Os problemas que você está descrevendo provavelmente se devem a três fatores:

  1. socket options na seção [global] do seu arquivo smb.conf. Uma boa linha de base para começar é:

    socket options = IPTOS_THROUGHPUT TCP_NODELAY SO_KEEPALIVE
    

    Veja como isso funciona; geralmente é o suficiente para deixar o Samba "fora do caminho" para os gargalos de desempenho. Para outras opções, confira a página do Samba ; notavelmente SO_SNDBUF e SO_RCVBUF. Definir esses valores incorretamente afetará o desempenho negativamente; isso pode levar algumas tentativas e erros.

  2. Fazendo o pior já mencionado, o tamanho dos arquivos afeta o Samba. Arquivos pequenos têm mais sobrecarga. E se você ajustar suas opções de soquete para transferências em massa, verá uma pequena velocidade de arquivos piorar. Da mesma forma, o ajuste para arquivos minúsculos torna as transferências de arquivos grandes piores. Idealmente, você vai descobrir o que você transfere com mais frequência, ou o que faz as maiores diferenças para você (lento em um ISO de 4 GB de DVD é geralmente mais significativo do que lento em um arquivo de 1 KB).

  3. Configurações de DNS e VFS. Se você não tiver o mapeamento de redirecionamento e redirecionamento de DNS configurado corretamente, desabilite as pesquisas de DNS do Samba ( dns proxy = no e hostname lookups = no ). Isso é mais evidente quando você se conecta a um compartilhamento do Samba (se levar mais de 5 segundos, esse é o problema).

    Há uma variedade de VFS e opções relacionadas que podem ser configuradas na seção [global] do Samba. Se eles estiverem errados, o Samba terá que lidar com erros ao abrir / salvar cada arquivo. As configurações apropriadas para o seu servidor dependerão do sistema de arquivos, da segurança e de alguns dos recursos que você deseja ativar. Não há uma resposta rápida para esta parte, mas faz a menor diferença no geral.

por 25.02.2013 / 15:04