Dicas para depurar o desempenho do Samba?

8

O Samba fornece 24 MB / s de leitura e 44 MB / s de gravação, enquanto o ftp fornece 97 e 112 MB / s nas mesmas circunstâncias.

A documentação diz que

Geralmente, você deve achar que o Samba tem desempenho semelhante ao ftp na velocidade de transferência bruta.

No meu caso, claramente não.

Onde posso encontrar dicas sobre como depurar o desempenho do Samba?

Ou, alternativamente, dicas para substituir o Samba por outra coisa? (Não posso usar o ftp, infelizmente, pois preciso de algo que possa ser usado com o rsync / rsnapshot.)

Mais detalhes:

  • Ambos os computadores estão executando o Ubuntu 10.10 (usando o Samba porque também tenho um Mac)
  • O compartilhamento Samba está em uma rede doméstica local, montada como

    $ mount
    ...
    //server.local/share/ on /mnt/share type cifs (rw,mand)
    
  • O desempenho do Samba foi testado copiando ( cp) um único arquivo de ~ 4 GB de e para o compartilhamento, usando timepara cronometrar e calcular a velocidade de transferência manualmente.

  • ftp performance são os números do cliente ftp para obter / colocar o mesmo arquivo.
  • iperf fornece velocidade de rede ~ 900 Mbits / s
  • bonnie++ fornece velocidades de disco> 200 MB / s em ambos os lados para leitura de bloco e gravação de bloco
  • Tentando alterar os parâmetros sugeridos no HOWTO de ajuste de desempenho (leitura / gravação bruta, tamanho da leitura, opções de soquete), a maioria deles fez pouca ou nenhuma diferença. (O que fez a diferença fez com que a velocidade de gravação caísse 50%.)
jg-faustus
fonte
Atualização: De acordo com a lista de discussão do Samba em 2009, os problemas de desempenho decorrem dos smbfs / cifs e não do servidor Samba.
jg-faustus

Respostas:

3

Na verdade, o FTP tem uma taxa de taxa de transferência de dados bastante eficiente assim que começa. A sobrecarga que torna as coisas mais lentas é a obtenção de um arquivo baixado em primeiro lugar. Isso não quer dizer que não haja um problema com o Samba aqui. Deveria ter um desempenho quase idêntico.

Para ser sincero, não tenho muita idéia de onde você deve começar a tentar corrigir isso.

Idealmente, você poderia colocar outro computador lá com uma instalação de referência do Samba (por exemplo, Windows) e testá-lo como cliente e servidor nas máquinas Ubuntu. Então você saberia qual máquina era o problema, se fosse apenas uma direção que fosse o problema e seria capaz de relatar erros com base nisso e / ou encontrar uma solução alternativa para o problema.

Há algum tempo, vi algo sobre certos hardwares de rede com falhas no Samba. Foram switches e adaptadores de rede, mas não consigo encontrar nada sobre isso. Provavelmente foi um caso tão delicado que não vale a pena considerar.

Que tal evitarmos o Samba? O FTP pode não funcionar, mas e o NFS ? Provavelmente possui as maiores velocidades de transferência do lote (na minha experiência) e deve lidar com o rsync corretamente.

Você também pode olhar para montar o servidor FTP pelo FUSE, para que o rsync possa intimidá-lo.

Oli
fonte
Obrigado pela dica e pelo feedback - eu não tinha ideia de que é possível montar o cifs-FTP? Também analisarei o NFS. Se o fraco desempenho do Samba é algo não trivial e não relacionado ao Ubuntu, talvez ele pertença à lista de discussão do Samba ou algo assim, e não aqui?
jg-faustus
A sua provavelmente é a melhor resposta que vou receber :) Obrigado novamente.
jg-faustus
11
você pode montar o recurso ftp: curlftpfs [usuário @] host: [dir] mountpoint [opções]
jet
1

Que tipo de desempenho você obtém ao executar o rsync sobre ssh? Talvez você possa fazer o seu rsync com o ssh e também usar o samba para quando precisar transferir coisas entre o seu mac?

Azendale
fonte
O rsync over ssh fornece 60 MB / s, aproximadamente a meio caminho entre o Samba e o FTP. Mas só vi uma dica em outro lugar que o rsync no modo daemon (tendo uma máquina como servidor rsync) pode ser parecido com o FTP, tentarei isso a seguir.
jg-faustus
1

você pode tentar isso no smb.conf

socket options = SO_KEEPALIVE SO_REUSEADDR \
   SO_BROADCAST TCP_NODELAY IPTOS_LOWDELAY \
   IPTOS_THROUGHPUT SO_SNDBUF=8192 SO_RCVBUF=8192

oplocks = yes

write raw = yes
read raw = yes
jato
fonte
Eu tentei alguns deles. TCP_NODELAY: Pequena melhoria. escreva cru e leia cru: Nenhuma diferença discernível. SO_SNDBUF e SO_RCVBUF: desempenho de gravação reduzido em 50%, não prosseguiu. Vou verificar o resto quando tiver a chance.
jg-faustus