Snapper 和 Btrfs 引发系统卡顿

症状

系统几乎卡死,所有的程序,无论 GUI 还是命令程序均非常缓慢,系统中出现两个高 CPU 占用率的进程btrfs-cleanerbtrfs-tranxxx

原因

默认情况下 Snapper 会自动根据快照的空间占用比例清理快照,该功能依赖 btrfs 的配额功能,然而 btrfs 的配额功能存在 性能问题

Combining quota with (too many) snapshots of subvolumes can cause performance problems, for example when deleting snapshots.

解决方法

直接关闭 btrfs 的配额功能

btrfs quota disable /

可能的副作用

一句话:只要配置文件中快照的数量不是很多,不会导致问题。

Snapper 的配置文件中,保留的快照数量都是一个区间,(min, max)。如果害怕遇到问题,最安全、最保守的方法是:把 max 设置为与 min 一样。

4赞

发现最合适的还是 ext4

最省心吧。没高级特性,但稳定、不折腾。

1赞

是的;省心;xfs 也还行;就是删除文件好慢

快照就像保险——用不着无所谓,只要用到一次就谢天谢地……
被 Btrfs 救过一命的我心中只有感恩。

2赞

Leap 么?应该是 btrfsmaintenance 的 bug,tumbleweed 现在用的版本好像没什么问题。



我用的是比较简单粗暴的办法:不用 btrfs,然后软件管理中搜索"btrfs",全部卸载(即使你安装时不用 btrfs 文件系统,安装程序也会把 btrfsmaintenance 之类的包装上去的,同样会出问题)。

这你算是说句良心话

同感,今天才被 Btrfs 救过,Leap 15.2 的 Preempt 内核无法开机,Btrfs 一键回滚。

1赞