Mac SMB 性能差得离谱

一个包含大约 5000 个文件的文件夹,使用 Windows、Linux、Android 和 Mac 设备打开,加载速度差异十分巨大。Window 秒开感知不到加载时间,Linux 和 Android 大概要加载 10 秒,Mac 转圈几分钟才能显示出内容。

搜了一下,找到 TrueNAS 的一个性能对照表,OSX 加载时间是 Windows 下的 60 倍。

所以 Mac 有什么好的方式访问 NAS 上的文件吗?NFS 配了半天没解决权限问题,FTP 都说很老安全性不好,WebDAV 和 SFTP 性能又不太行。

1 个赞

又花了几个小时还是没弄好 NFS,SMB 共享在服务器上启用了 fruit 模块性能有所提升,打开文件夹大概节省了一半的时间,算是勉强可用,在 Mac 上关闭校验能更快一些。
但还是比 Windows 慢非常多,加载时 Finder 会无响应,打开后上下滑动加载缩略图会卡顿,滑动太快还有概率崩溃。Mac 用下来体验最糟糕的就是 Finder,Windows Explorer 虽然天天出 Bug 日常崩溃,起码正常的时候用起来还行,再不济也有 Dopus 等一众优秀的第三方文件管理器。Finder 日用体验非常糟糕,想找个第三方替换都没有,逼着我用起了 TUI 的文件管理器。

Deep Research看了下你遇到的 SMB 性能问题(NFS部分瞎猜的), 并提出了一些可能解决问题的方法

原文内容很多,这是精简内容

1. 禁用 .DS_Store 文件写入

  • 描述: 在终端运行以下命令以禁用网络存储上的 .DS_Store 文件写入,减少因元数据文件导致的加载延迟,然后注销并重新登录。
  • 命令:
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

2. 调整 SMB 协议版本

  • 描述: 通过编辑 /etc/nsmb.conf 文件,确保 macOS 使用 SMB2 或 SMB3 协议,避免较老的 SMB1,提升性能和兼容性。
  • 步骤:
  1. 创建或编辑文件:sudo nano /etc/nsmb.conf
  2. 添加以下内容:
    [default]
    protocol_vers_map=6  # 强制使用 SMB3
    signing_required=no  # 禁用签名以提升速度(需确保安全性)
    
  3. 保存并重启 Finder:killall Finder

3. NFS 可能的问题

4. 第三方文件管理器

  • 描述: 使用 macOS 上的第三方文件管理器(如 Path Finder 或 ForkLift)或命令行工具替代 Finder,提升文件浏览体验,尤其是在处理 NAS 文件时。
  • 推荐工具:
  • Path Finder: 功能强大,支持网络共享浏览。
  • ForkLift: 轻量且快速,支持 SMB/NFS。
  • 链接:
  • Path Finder 官方网站
  • ForkLift 官方网站
  • 理由: 用户对 Finder 体验不满,提到 Windows 有 Directory Opus 等替代品,Mac 上的第三方工具可显著改善浏览 NAS 文件的体验。

保命声明:

本人并没有遇到类似的问题,这些建议并不完全基于个人经验,而是通过 AI 查找的一些可能的方向,具体效果与风险还需要根据实际情况来判断。

看来又是因为 Finder 在疯狂拉屎:poop:

厉害了, 这是1200块一个月的那种吗?

前几天才看到有up主,smb切换到NFS就解决了这个问题。

这是一分钱不要的那种,而且实际内容很多,主要是怕内容太多了填满帖子了。

这里讲的 SMB 优化措施我都已经做了,但性能表现还是一坨,不和Windows比,和Android比都差很多。

这里面有实际效果的就是服务器启用 fruit 和Mac上关闭签名校验。禁用 .DS_Store 阻止 Finder 到处拉屎在别的意义上也很有用。

NFS 弄好权限要改 UID 和 GID,我担心改完 NAS 上权限乱了整个系统崩掉。

最后改了Mac上用户的 UID 和 GID,修改文件所有者花了好几个小时。大致操作是新建一个管理员用户,在设置/用户与群组里按住control单击,高级菜单中修改 UID 和 GID。然后授予终端所有文件的访问权限,执行

sudo find / -uid {之前的uid} -exec chown -h {新的UID}:{新的GID} {} +

NFS 比 SMB 在终端性能有极大提升,挂载后首次 ls 一个有 760 项内容的文件夹,用时如下:

#SMB
________________________________________________________
Executed in   20.77 secs      fish           external
   usr time   32.13 millis    0.81 millis   31.32 millis
   sys time  580.32 millis    3.21 millis  577.10 millis

#NFS
________________________________________________________
Executed in    2.71 secs      fish           external
   usr time   21.31 millis    0.78 millis   20.53 millis
   sys time  318.58 millis    3.17 millis  315.41 millis

但对比 Linux 客户端的性能还是差远了,只能说从2000倍差距缩小到了200倍差距,从不太可用变成了勉强能用

# SMB
________________________________________________________
Executed in   93.44 millis    fish           external
   usr time   12.10 millis    1.60 millis   10.50 millis
   sys time   17.01 millis    0.24 millis   16.77 millis

#NFS
________________________________________________________
Executed in   69.62 millis    fish           external
   usr time   17.30 millis    1.29 millis   16.01 millis
   sys time   21.98 millis    0.04 millis   21.93 millis

那么macos有啥方便的smb客户端吗.
确实很慢…

不只Mac OS,iOS 更是一坨!总是连不上。都是要用第三方App。