Ubuntu
當 Windows 8 客戶端連接時,SMBD 守護程序會在 100% 的 CPU 使用率時達到峰值
我有一個執行 Ubuntu 12.04 的伺服器作為 Samba 伺服器執行。文件系統是物理驅動器 LVM 池上的 XFS 格式虛擬驅動器。
我最近將我們的客戶端升級到 Windows 8,我注意到客戶端連接 Ubuntu 伺服器上的 SMB 共享有 6-8 秒的延遲。在 Windows 7 中,沒有這樣的延遲。在 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 ...
我知道自 Windows 7 以來,Windows 8 中的 SMB 實現已發生更改。我可以對 smb.conf 進行更改以解決 CPU 使用率飆升的問題嗎?
通過在 smb.conf 中進行以下更改,我能夠解決從 Windows 8 登錄的延遲問題:
encrypt passwords = yes