我有一台运行Ubuntu 12.04的服务器作为Samba服务器运行。 文件系统是LVM物理驱动器池上的XFS格式的虚拟驱动器。
我最近将客户升级到了Windows 8,我注意到在Ubuntu服务器上连接SMB共享的客户端有6-8秒的延迟。 在Windows 7中,没有这样的延迟。 在Ubuntu服务器上,在初始连接到共享期间,SMBD进程在几秒钟内达到100%的CPU使用率。
strace显示smbd在连接期间一遍又一遍地打开/ etc / passwd。 我的客户应该作为访客连接(不authentication)。
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 28 _llseek(28, 0, [0], SEEK_CUR) = 0 fstat64(28, {st_mode=S_IFREG|0644, st_size=1568, ...}) = 0 mmap2(NULL, 1568, PROT_READ, MAP_SHARED, 28, 0) = 0xb6de2000 _llseek(28, 1568, [1568], SEEK_SET) = 0 fstat64(28, {st_mode=S_IFREG|0644, st_size=1568, ...}) = 0 munmap(0xb6de2000, 1568) = 0 close(28) = 0 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 28 _llseek(28, 0, [0], SEEK_CUR) = 0 fstat64(28, {st_mode=S_IFREG|0644, st_size=1568, ...}) = 0 mmap2(NULL, 1568, PROT_READ, MAP_SHARED, 28, 0) = 0xb6de2000 _llseek(28, 1568, [1568], SEEK_SET) = 0 fstat64(28, {st_mode=S_IFREG|0644, st_size=1568, ...}) = 0 munmap(0xb6de2000, 1568) = 0 close(28) ... repeats over and over ...
我知道,自Windows 7以来,Windows 8中的SMB实现已经发生了变化。我可以对smb.conf进行更改,以解决CPU使用率高峰的问题吗?
通过在smb.conf中进行以下更改,我能够通过从Windows 8login来解决延迟问题:
encrypt passwords = yes