Ubuntu12.04を実行しているサーバーをSambaサーバーとして実行しています。ファイルシステムは、物理ドライブのLVMプール上のXFSフォーマットの仮想ドライブです。
最近、クライアントをWindows 8にアップグレードしましたが、UbuntuサーバーでSMB共有を接続するクライアントに6〜8秒の遅延があることに気付きました。Windows7ではそのようなものはありません。遅延:Ubuntuサーバーでは、共有への最初の接続中に、SMBDプロセスが数秒間100%のCPU使用率に急上昇します。
strace
は、smbdがその接続中に/ etc/passwdを何度も開いていることを示しています。クライアントはゲストとして接続する必要があります(認証なし)。
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 ...
Windows8でのSMBの実装がWindows7から変更されていることを認識しています。CPU使用率の急上昇に関する問題を解決するためにsmb.confに変更を加えることができますか?
Smb.confに次の変更を加えることで、Windows8からのログインによる遅延を解決できました。
encrypt passwords = yes