Por que o compartilhamento montado em CIFS é mais rápido que o SMB?

5

Para começar, essa questão não é realmente um problema, mas sim um "por que é assim" . Eu estou tentando voltar ao Linux depois de vários anos no mundo do Windows, mas eu perdi muito ... Então aqui é para aprender de novo. :)

Eu tenho uma máquina Windows 10 x64 atuando como servidor de arquivos na minha rede. Eu acesso as ações do Ubuntu Mate 16.04. O navegador de arquivos principal é o Caja.

Esta é a parte boa: Quando eu navego nos compartilhamentos de rede na minha rede e começo a copiar um arquivo, a velocidade máxima é de cerca de 600 Mbit. Mas quando eu montei o compartilhamento permanentemente em Fstab com CIFS (de acordo com link ) eu posso utilizar minha velocidade de link completo (1 Gbit ). Eu posso utilizar a velocidade total do link ao usar o smbclient via Terminal também.

Alguém pode me explicar por que esse é o caso da Caja (e da Nautilus pelo que posso dizer) e talvez me dê alguns links onde eu possa ler mais sobre isso? Não são CIFS e SMB basicamente a mesma coisa?

Obrigado!

Atualização: estou usando uma placa de rede Intel I217-V (rev 04).

    
por Linus Lundgren 17.05.2016 / 16:21

1 resposta

0

O SMB é um bloco de mensagens do servidor que foi inventado pela IBM para gravar arquivos em uma rede LAN. CIFS é um sistema comum de arquivos da Internet. O CIFS é uma implementação específica do SMB feita pela Microsoft.

1.) A implementação CIFS de SMB é raramente usada nos dias de hoje. A maioria dos sistemas de armazenamento modernos não usa mais o CIFS, eles usam o SMB 2 ou o SMB 3. No mundo do Windows, o SMB 2 é o padrão do Windows Vista (2006) e o SMB 3 faz parte do Windows 8 e Windows Server 2012. p>

2.) SMB 2 e SMB 3 são atualizações massivas sobre a implementação do CIFS.

Agora, é importante ter em mente (tamanho da janela TCP * 8bits / RTT em milissegundos) = taxa de transferência máxima do TCP em bps. Embora você possa ter uma rede Gigabit, um único fluxo TCP provavelmente não será tão alto.

Agora, para otimizar a configuração do SMB:

[global]

CONSULTE: link

strict allocate = Yes

CONSULTE: link

allocation roundup size = 4096

Permitir reado de 65535 bytes em um pacote

leia raw = Yes

A assinatura do servidor atrasa as coisas.

server signing = No

Suporte a gravação RAW.

write raw = Yes

"bloqueio estrito = auto" OU "bloqueio estrito = não" é aceitável.

strict locking = No

opções de soquete = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF = 131072 SO_SNDBUF = 131072

"min tamanho do arquivo de recebimento" será passado diretamente para o kernel, recvfile / splice SYSTEM CALL.

min receivefile size = 16384

Use uma chamada de sistema sendfile () mais eficiente

use sendfile = Yes

O must do samba deve ser construído com suporte a E / S de suporte a arquivos assíncronos

aio read size = 16384
aio write size = 16384

Também no meu caso eu precisei mudar a ordem das pesquisas de nome no nsswitch.conf. Acontece que essa configuração continha uma linha como essa.

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4 

Basta adicionar um "wins" à linha de hosts para resolver o problema.

hosts:          files wins mdns4_minimal [NOTFOUND=return] dns mdns4
    
por ognjen 15.03.2018 / 11:49