CIFS/SMB 性能非常慢

roc*_*ckZ 4 cifs nas smb

我从 NFS 切换到 SMB/CIFS,因为 NFS 的权限系统让我很恼火。我在使用 NFS (1GB Lan) 时从未遇到过性能问题,写入 Synology NAS 时的写入和读取速度约为 70-90 MB/s。

我用 dd 测试我的写性能(写 500MB 到我的 SMB 挂载):

[user@archStd01 Transfer]$ dd if=/dev/zero of=/home/user/NAS/Transfer/test bs=512 count=1000000
1000000+0 Datensätze ein
1000000+0 Datensätze aus
512000000 Bytes (512 MB, 488 MiB) kopiert, 675.388 s, 758 kB/s
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,它的表现非常糟糕,平均为 758 kB/s

我的 fstab:

//192.168.1.100/Transfer /home/user/NAS/Transfer cifs credentials=/home/user/.smbcredentials,uid=1000,gid=1000,vers=3.0,rw 0 0
Run Code Online (Sandbox Code Playgroud)

目前我浏览了一些 SMB 手册,但我没有发现太多关于性能问题的信息。有谁知道从哪里开始?

// 使用 dd编辑性能测试,块大小为 10MB

[user@archStd01 Transfer]$ dd if=/dev/zero of=/home/user/NAS/Transfer/test bs=10M count=500
500+0 Datensätze ein
500+0 Datensätze aus
5242880000 Bytes (5.2 GB, 4.9 GiB) kopiert, 406.979 s, 12.9 MB/s
Run Code Online (Sandbox Code Playgroud)

它好多了,但离快速还很远。

小智 8

我只是对一个类似的 CIFS 性能问题感到困惑。与 Windows 客户端和我们的 Samba 服务器之间的传输速度很好,但从服务器到两台 Ubuntu 机器(运行仿生)的下载速度很慢。使用SCP代替CIFS传输没有速度问题,所以问题不在于底层网络。按照此 ubuntuforums thread 上的建议,我尝试将cache=loose添加到 /etc/fstab 中我的 Ubuntu 客户端的 cifs 挂载配置中,现在两个方向的速度都符合我的预期(在我的情况下大约是 x7-10 改进)。

//server/share /media/localMountPoint cifs cache=loose,rw,...
Run Code Online (Sandbox Code Playgroud)

但是,正如海报在 ubuntuforums 线程上所警告的那样,根据mount.cifs 手册页

当多个读取器和写入器处理相同的文件时,cache=loose 会导致数据损坏。

我碰巧在一个用户很少的家庭网络上,所以这对我来说是可以接受的。