Lista de diretórios lenta ao navegar pelo compartilhamento do Windows

0

Temos um cliente Linux usando o mount cifs -t e navegar entre os diretórios é extremamente lento, às vezes de 1 a 3 minutos apenas para listar as pastas.

O compartilhamento reside em um servidor Windows. Clientes Windows não têm esse problema.

Podemos reproduzir o problema se instalarmos uma nova versão do Ubuntu em uma VM.

Uma coisa a notar é que esse usuário está se conectando através de MPLS de um escritório remoto ao nosso datacenter através de uma conexão de 100 Mbps.

A latência é de 50 ms.

Existe algo que eu possa fazer para resolver esse problema? Sugestões?

Originalmente, tivemos problemas com o desempenho bloqueado em 1 MB / s para a taxa de transferência; no entanto, se adicionarmos vers = 3.02 ao comando mount cifs, a taxa de transferência poderá ir até 11 Mb / s.

O único problema que resta é a troca entre pastas.

Se rodarmos o ls do terminal, ele terá o mesmo atraso, às vezes 2 minutos para mostrar a listagem ls.

Se executarmos sudo ls a lista de diretórios é instantânea, não temos certeza de por que ou se há algo que possamos fazer para mitigar o problema.

A execução de ls -R realmente mostra o problema. sudo ls -R é basicamente quase instantâneo.

Se configurarmos outro mapa para uma localização diferente na nossa rede MPLS com latência de 25 ms, o problema desapareceu e a navegação é instantânea.

Ajuda por favor.

    
por Ubuntu Guy 23.08.2017 / 03:59

1 resposta

0

A documentação completa de ls ( info '(coreutils) ls invocation' ou a versão on-line ), tem uma solução provável:

 Note that using the ‘--color’ option may incur a noticeable
 performance penalty when run in a directory with very many entries,
 because the default settings require that ‘ls’ ‘stat’ every single
 file it lists.  However, if you would like most of the file-type
 coloring but can live without the other coloring options (e.g.,
 executable, orphan, sticky, other-writable, capability), use
 ‘dircolors’ to set the ‘LS_COLORS’ environment variable like this,
      eval $(dircolors -p | perl -pe \
        's/^((CAP|S[ET]|O[TR]|M|E)\w+).*/$1 00/' | dircolors -)
 and on a ‘dirent.d_type’-capable file system, ‘ls’ will perform
 only one ‘stat’ call per command line argument.

Se você adicionar sobrecarga de rede a stat tudo em todo o diretório, seu atraso começa a ser compreensível.

Você também pode usar uma invocação de ls com --color=off ou não --color .

    
por waltinator 25.08.2017 / 05:16