浏览 Windows 共享时目录列表缓慢

浏览 Windows 共享时目录列表缓慢

我们有一个使用 mount cifs -t 的 Linux 客户端,目录之间的浏览速度非常慢,有时仅列出文件夹就需要 1-3 分钟。

共享位于 Windows 服务器上。Windows 客户端不存在此问题。

如果我们在虚拟机上安装新版本的 Ubuntu,我们可以重现该问题。

需要注意的一点是,该用户通过 MPLS 从远程办公室以 100 Mbps 的连接连接到我们的数据中心。

延迟为 50 毫秒。

我能做些什么来解决这个问题?有什么建议吗?

我们最初遇到的性能问题是传输速率锁定在 1 MB/秒;但是,如果我们将 vers=3.02 添加到 mount cifs 命令中,传输速率就可以上升到 11 Mb/秒。

剩下的唯一问题是文件夹之间的切换滞后。

如果我们从终端运行 ls,它会有相同的延迟,有时需要 2 分钟才能显示 ls 列表。

如果我们运行 sudo ls,目录列表是即时的,不确定为什么或者我们是否可以做些什么来缓解这个问题。

运行 ls -R 确实显示了该问题.. sudo ls -R 基本上是即时的。

如果我们在 MPLS 网络上将另一张地图设置到不同的位置,且延迟为 25 毫秒,则问题就消失了,浏览变得即时。

请帮助。

答案1

完整ls文档(info '(coreutils) ls invocation'在线版本),有一个可能的解决方案:

 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.

如果您添加网络开销来stat处理整个目录中的所有内容,那么您的延迟就开始变得可以理解了。

或者,您可以使用 的调用ls--color=off或者不使用--color

相关内容