Como depurar o compartilhamento de samba lento pelo Nautilus?

2

Eu tenho o Fedora 23 com o Gnome 3 e o Nautilus 3.18.5-1.fc23. Eu tenho problemas com velocidades SMB usando o Nautilus. É sobre 4.4MB / s, enquanto por qualquer outro método (por exemplo, smbclient do terminal) eu tenho 11MB / s do servidor Samba. Existe uma maneira de depurar isso. Eu li em alguns fóruns que talvez o Nautilus não defina rsize adequadamente montando a unidade. Eu não tenho certeza sobre isso. Não encontrei a unidade montada com lsblk . De acordo com alguns fóruns, as unidades de rede são montadas em /run em uma pasta gvfs . Isso eu posso confirmar, eu tenho o seguinte caminho:

/run/user/1000/gvfs/smb-share:server=odroid-server,share=asmedia-hdd

Por mount | grep gvfs , recebi o seguinte:

gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)

Eu não encontrei uma maneira de verificar essa coisa de rsize . Provavelmente não resolveria meu problema, não tenho certeza. Outra coisa que eu queria desligar pela unidade é o relatime. Pelo menos, está definido para noatime no servidor.

Existe uma maneira de fazer isso no Nautilus config (eu sei que é possível no fstab)? Existe outra maneira de depurar esse problema lento de velocidade SMB de alguma forma?

    
por inf3rno 20.02.2016 / 22:18

1 resposta

1

Acostando a um fórum o problema é com gvfs e cifs funciona muito melhor. Não estou familiarizado com esses termos, mas posso confirmar isso. Montando a unidade manualmente:

mount -t cifs -o username=root,password=xxxxx //192.168.0.186/asmedia-hdd /media/asmedia-hdd

Eu posso conseguir 10MB / s no Nautilus. O único problema é que eu não tenho descoberta de rede e não consigo desmontar a unidade do nautilus. Então, acho que isso não é uma solução real.

Existe alguma maneira de forçar o Nautilus a usar o cifs ao invés do gvfs?

próximo

Eu encontrei um arquivo de configuração, que parece ser muito relevante:

/usr/share/gvfs/mounts/smb.mount

[Mount]
Type=smb-share
Exec=/usr/libexec/gvfsd-smb
AutoMount=false
Scheme=smb

Eu acho que gvfs não é um tipo de partição, é algo que usa cifs também. Então eu acho que posso de alguma forma definir o tamanho do buffer cifs aqui. Eu não consegui descobrir ainda como fazer isso.

De acordo com o wiki, o gvfs é um sistema de arquivos virtual, então ele pode estar no topo do cifs, então eu estava certo.

próximo

Eu encontrei esta resposta: link tentando montar o gvfs a partir do terminal. De acordo com ele, o export $(dbus-launch) é importante antes de usar qualquer comando gvfs. Eu confirmo que não consegui usar os comandos gvfs do terminal e recebi apenas mensagens de erro vagas sobre o problema.

Consegui montar a unidade manualmente com o gvfs:

gvfs-mount smb://WORKGROUP\;[email protected]/asmedia-hdd

Consegui listar as unidades montadas

gvfs-mount -l

    Drive(0): KINGSTON SV300S37A120G
      Type: GProxyDrive (GProxyVolumeMonitorUDisks2)
    Drive(1): ST31000528AS
      Type: GProxyDrive (GProxyVolumeMonitorUDisks2)
      Volume(0): data
        Type: GProxyVolume (GProxyVolumeMonitorUDisks2)
      Volume(1): system
        Type: GProxyVolume (GProxyVolumeMonitorUDisks2)
      Volume(2): Rendszer számára fenntartott
        Type: GProxyVolume (GProxyVolumeMonitorUDisks2)
    Drive(2): TSSTcorp CDDVDW SH-222AB
      Type: GProxyDrive (GProxyVolumeMonitorUDisks2)
    Mount(0): asmedia-hdd on 192.168.0.186 -> smb://WORKGROUP;[email protected]/asmedia-hdd/
      Type: GDaemonMount

Ainda não há muita informação sobre a configuração dessas unidades montadas. O Nautilus não mostrou a unidade montada. Isso é interessante, porque quando eu usei o comando mount no terminal o drive montado apareceu no nautilus.

Encontrei o ponto de montagem aqui:

cd ~/.gvfs/smb-share\:domain\=WORKGROUP\,server\=192.168.0.186\,share\=asmedia-hdd\,user\=root/

Eu era capaz de cp da unidade montada gvfs um arquivo mkv e eu usei

watch -- du -h test.mkv

para medir a velocidade de transferência, foi de cerca de 4,3MB / s. Eu usei a mesma técnica medindo a velocidade do CP quando eu usei o comando smbclient. Então eu consegui reproduzir o que o Nautilus faz no fundo. Agora, a única coisa que preciso é adicionar uma opção para alterar o tamanho do buffer cifs, se isso for possível.

conclusão:

Acabei de adicionar o seguinte ao fstab:

//192.168.0.186/asmedia-hdd          /media/asmedia-hdd          cifs            rw,workgroup=WORKGROUP,username=root,password=xxxxx,noauto,users,iocharset=utf8      0     0

e usado

chmod 4755 /usr/sbin/mount.cifs

porque o nautilus escreveu que apenas o root pode montar a unidade em vez de mostrar o prompt da senha de root.

Eu não gosto dessa solução, porque o nautilus não descobre as unidades de rede dessa maneira. Outro problema que eu tive que dar permissões para todos os usuários para montar esta unidade e eu tive que dar a senha smb, porque eu não tive pronto para isso também. As velocidades de download foram bem, e eu também recebi o mesmo pelo upload. Pelo upload eu recebi falsos relatórios de velocidade e tamanho de arquivo do nautilus, ele grava 120MB / s no começo, o que diminui constantemente. Ao verificar o tamanho do arquivo com a unidade montada gvfs consegui obter informações sobre as velocidades reais. Foi cerca de 10MB / s.

Eu tento resolver isso com o gvfs. Se eu conseguir fazer isso, postarei uma resposta, mas até que eu use essa solução montada em cifs.

próximo ~ 2016

Adicionou um relatório de erros aqui: link talvez eles tenham uma resposta.

next ~ 2017

De acordo com o Gnome devs, esse é um bug do Samba. Eles podem escrever um patch, mas não há garantia. O Samba não não se importou com ele nos últimos 3 anos (2014-17), eu não estou mesmo que o projeto seja mantido.

nota :

Eu medi este 10MB / s através de conexão wi-fi. Fiz algumas medições através de ethernet com o mesmo Odroid XU4 quando tentei depurar isso. (O GVFS usa o libsmbclient, então faz algo semelhante ao chamar smbget .)

copie com o nautilus (18-19MB / s)

# mount with nautilus on GUI
# copy with nautilus on GUI

copia com tamanho de bloco padrão smbget (23-24MB / s)

# mount with nautilus on GUI
smbget -u root -w WORKGROUP smb://192.168.0.186/asmedia-hdd/testfile

copie com tamanho de bloco smbget 16K (1-64K) (38-57MB / s)

# mount with nautilus on GUI
smbget -u root -w WORKGROUP smb://192.168.0.186/asmedia-hdd/testfile --blocksize=16777216

copiar com montagem CIFS (70-90MB / s)

# mount in fstab
//192.168.0.186/asmedia-hdd /media/asmedia-hdd cifs rw,workgroup=WORKGROUP,username=root,password=...,noauto,users,iocharset=utf8 0 0
# copy with nautilus on GUI

Portanto, um gargalo evidente é o tamanho de bloco muito pequeno aqui no GVFS, mas a velocidade chega ao tamanho de bloco de 1k e atinge no máximo 63% da velocidade do CIFS, portanto deve haver outro afunilamento não identificado no smb lib. / p>     

por 22.12.2017 / 09:45