场景
我有一台 SUSE SLES 11.1 SP1 机器作为 Samba 主 PDC,带有 LDAP 后端。在一个共享中,有用于客户端-服务器应用程序的数据库文件。我将 XP 和 Windows 7 机器登录到本地域 (example.local),登录有点慢,但可以正常工作。在客户端计算机中有一个可执行文件,它可以打开、读取和写入来自服务器共享的数据库文件。
问题
当使用 LDAP 密码后端运行 Samba 时,客户端应用程序运行非常慢,最大传输速率为每秒 2500 MBit。如果禁用 LDAP,客户端应用程序速度将提高 20 倍,传输速率 >50Mbit/秒,并且运行顺畅。
我只使用两个用户和两台机器进行测试,因此并发性或 LDAP 大小不应该是这里的问题。
犯罪嫌疑人
LDAP,Smb.conf [global] 部分配置。
问题
我该怎么办?我在 Google 上搜索了很多,但仍然没有答案。
使用 LDAP 的 smb.conf 速度很慢
[global]
workgroup = zmartsoft.local
passdb backend = ldapsam:ldap://127.0.0.1
printing = cups
printcap name = cups
printcap cache time = 750
cups options = raw
map to guest = Bad User
logon path = \\%L\profiles\.msprofile
logon home = \\%L\%U\.9xprofile
logon drive = P:
usershare allow guests = Yes
add machine script = /usr/sbin/useradd -c Machine -d /var/lib/nobody -s
/bin/false %m$
domain logons = Yes
domain master = Yes
local master = Yes
netbios name = server
os level = 65
preferred master = Yes
security = user
wins support = Yes
idmap backend = ldap:ldap://127.0.0.1
ldap admin dn = cn=Administrator,dc=zmartsoft,dc=local
ldap group suffix = ou=Groups
ldap idmap suffix = ou=Idmap
ldap machine suffix = ou=Machines
ldap passwd sync = Yes
ldap ssl = Off
ldap suffix = dc=zmartsoft,dc=local
ldap user suffix = ou=Users
答案1
经过几个月的四处搜寻,我终于读到了这篇文章 http://www.linuxtopia.org/online_books/network_administration_guides/samba_reference_guide/24_locking_08.html
并开始使用 oplock 值。Windows 应用程序执行了大量读写操作,每次都更改权限,当禁用 oplock 时,事情开始变得更好。
答案2
您可能需要检查名称服务缓存守护程序 (nscd) 是否正常工作。您看到的减速可能与用户名->UID 查找有关。通过安装该卷可能会获得一些加速,因为这样noatime
可以防止查找频繁发生。但这些值应该缓存一段时间。