问题定义

我有一个简单的家庭 setup:用 Raspberry Pi 定时拍照,图片存到 NAS 上。平时只是偶尔从macOS上mount NAS,用 lsfeh 看一看。

直觉上,这应该是个很轻量的操作,但现实是:

问题的本质其实是:

远程文件系统 + 大量小文件 + metadata 操作(stat / readdir)

在 macOS 上,这类操作 会触发大量网络往返(round-trip),性能很容易崩掉。


我的解决方案:用 Linux 承担文件访问

优化 macOS 的挂载参数几乎不可能解决该问题,不如直接换思路:

把文件访问放到 Linux 环境中执行

我最终采用了:


架构图

faster-nas-access-on-macos-with-docker


为什么这个方案有效?

关键点只有一个:

Linux 的缓存(page cache / dentry / inode)更激进

带来的变化是:

性能提升来自两个层面:

1️⃣ 冷路径优化(第一次访问)

2️⃣ 热路径优化(后续访问)

👉 大量请求直接在内存中命中,不再访问