![什么是挂载选项 space_cache=v2?](https://linux22.com/image/222928/%E4%BB%80%E4%B9%88%E6%98%AF%E6%8C%82%E8%BD%BD%E9%80%89%E9%A1%B9%20space_cache%3Dv2%EF%BC%9F.png)
“使用 BTRFS 进行 Debian 12 Bookworm 最小安装”作者:JustAGuy Linux 于 8:28他为SSD设置了一个选项,
mount -o ... space_cache=v2 ...
有什么选择space_cache=v2
?什么时候该用,什么时候不该用?我没有看到它记录在man mount
.
答案1
你可以看到spache_cache
记录在这里,但需要注意的一件事是从 4.5 版本开始它是默认值。 Debian 12 发布内核版本 6.1。所以它只是详细说明默认值。
space_cache
,space_cache=<version>
,nospace_cache
(nospace_cache 自:3.2 起,space_cache=v1 和 space_cache=v2 自 4.5 起,默认:space_cache=v2)控制可用空间缓存的选项。将块组可用空间读入内存时,可用空间缓存极大地提高了性能。然而,管理空间缓存会消耗一些资源,包括少量的磁盘空间。
可用空间缓存有两种实现方式。最初的版本称为 v1,曾经是安全的默认版本,但已被 v2 取代。 v1 空间缓存可以在挂载时使用 nospace_cache 禁用,而无需清除。
在非常大的文件系统(许多 TB)和某些工作负载上,v1 空间缓存的性能可能会急剧下降。 v2 实现添加了一个称为自由空间树的新 B 树,解决了这个问题。一旦启用,v2 空间缓存将始终被使用,除非清除,否则无法禁用。使用clear_cache,space_cache=v1 或clear_cache,nospace_cache 来执行此操作。如果启用 v2,则 v1 空间缓存将被清除(在第一次挂载时),并且不支持 v2 的内核将只能以只读模式挂载文件系统。在未挂载的文件系统上,可以通过“btrfs check --clear-space-cache”清除缓存(两个版本)。
自 v4.19 起,btrfs-check(8) 和 mkfs.btrfs 命令具有完整的 v2 可用空间缓存支持。
如果未明确指定版本,则将选择默认实现,即 v2。