Samba:查询不存在的文件速度很慢

Samba:查询不存在的文件速度很慢

在 samba 共享中,我们有一个包含大量文件的目录 - 二进制文件和资源,用于运行我们的 ERP 应用程序(大约 20K 个条目)。

应用程序加载时间过长。发现的原因是应用程序尝试以试错方式加载多个文件,按特定顺序查找扩展名(例如:file.dll、、、file.lbrfile.gntfile.int)。其中许多文件不是​​必需的,甚至不存在。

每次“未找到”事件大约需要 0.2 秒。并且有很多这样的事件。

问题是,Samba 显然没有缓存这个结果。

如果我在 samba 共享中运行此代码(在 Windows 命令提示符中),则需要相当长的时间,而在本机 Windows 共享中则是即时的。

  for /L %i in (1,1,50) do @dir \\server\share\not_existing.txt >nul

有什么可以做的吗?


当前smb.conf内容:

# Global parameters
[global]
    netbios name = ***omitted***
    realm = ***omitted***
    server role = active directory domain controller
    workgroup = ***omitted***
    idmap_ldb:use rfc2307  = yes
    dns forwarder = ***omitted***
    vfs objects = acl_xattr
    map acl inherit = yes
    store dos attributes = yes
    # 
    aio read size = 1
    aio write size = 1
    aio write behind = true
    socket options = TCP_NODELAY SO_RCVBUF=65535 SO_SNDBUF=65535
    read raw = yes
    write raw = yes
    max xmit = 65535
    dead time = 0
    getwd cache = no
    max connections = 5000
    time server = yes

环境详情:

  • CentOS Linux 版本 7.6.1810(核心)
  • Samba 版本 4.8.3
  • 应用程序运行时:Microfocus NetExpress (Cobol) v3.1

相关内容