shell 命令导致内存使用失控,但 shell 脚本则不会

shell 命令导致内存使用失控,但 shell 脚本则不会

[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 进行了相同的测试,得到了相同的结果。

更新:只是为了使每个测试相同,我再次运行了 - infishbash- 使用/usr/bin/btrfs而不是我的别名 (to sudo btrfs)。结果是一样的。

更新#2:我之前的更新有错误。

相关内容