[Linux Mint 20.1、16GB RAM、16GB 交换空间]
我最近将我的系统(根分区和备份分区)转换为 BTRFS。我一直在尝试将 root 的一些快照存档到我的备份驱动器,但是以下命令的内存使用使我的系统崩溃了:
btrfs send /.snapshots/98/snapshot | btrfs receive /media/backups/@root/.snapshots/98
该命令占用了近 20 GB 的 RAM,在此过程中几次完全冻结了我的系统。我的根分区使用了大约 11 GB,不包括快照。
我的下一个测试是在脚本中使用相同的命令(最初的原因是测试systemd-run
和设置内存限制),如下所示:
#!/usr/bin/fish
btrfs send /.snapshots/98/snapshot | btrfs receive /media/backups/@root/.snapshots/98
运行此脚本总共使用了 8 MB,速度提高了 4 倍。为了确保我在相同的测试环境中运行,我确保原始备份快照已删除并提交 ( btrfs subvol delete -Cv
)。我也用 bash 进行了相同的测试,得到了相同的结果。
更新:只是为了使每个测试相同,我再次运行了 - infish
和bash
- 使用/usr/bin/btrfs
而不是我的别名 (to sudo btrfs
)。结果是一样的。
更新#2:我之前的更新有错误。