设想

设想

设想

我使用的是带有 ext4 文件系统的常规 Ubuntu 18.04 LTS。

我在用着雷斯蒂奇备份我的机器。 Restic 是一个备份工具,支持不同的后端(本地、sftp、aws、gcs 等),但一次只能支持一个备份目标。所以我不能告诉restic
“将这些文件夹同时备份到目标 1、目标 2 和目标 3,同时只读取主机上的每个文件一次”
我知道有一些工具可以在第二步将 dest1 同步到 dest2 等等,但我不想在这里讨论这个问题。

问题

让 restic 运行一次然后再运行一次,从而连续两次检查相关文件夹中的所有文件,这样做聪明吗?

或者,如果我并行运行两个/三个 restics,以便我的进程大致同时读取相同的文件,我的通用 Linux 文件缓存是否会工作得更好?

或者这是否会完全导致我的磁盘 io 过载,因为(至少在 HDD 上)读取头可能需要不断地来回跳跃?

HDD/SSD 如何影响这一点?

-

我自己没有做过任何性能测试,希望一些文件系统/文件缓存专家可以为我解决这个麻烦:)

干杯

答案1

所以我最终在我的python程序中添加了一个开关(伦雷斯蒂克) 可让您选择顺序执行或并行执行,以下是一些初步结果:

本地设置

普通笔记本电脑NVMe 固态硬盘和 ext4。

源目录

$ du -csh tmp/
2.4G    tmp/
$ find tmp/ | wc --lines
43724
$ ls tmp/
audible-activator    django-prometheus  gosignals   js-beautify   matomotest               nextcloud-social-login   pyelasticsearch  sinnlos
batstat              dms                huestacean  landmatrix    matrix-appservice-slack  omniauth-oauth2-generic  quartiermeister  tmpfooab
christophtest        elasticsearch-HQ   jcdriver    leaflet-v-ol  mirenzeugs               postfix_exporter         restic           wagtail
cookiecutter-django  go-neb             joycon      lib_users     msw                      protonfoo                salt

~2.4GBgit repos 和其他随机文件也是如此。

目标目录是同一文件系统上的两个目录。

我在运行之间刷新了我的 Linux 缓存: sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches。这似乎有效,因为多次运行相同的命令会产生类似的结果。

按顺序休息

$ runrestic init backup
{'init': 5.7561564445495605, 'backup': 30.630026817321777, 'total': 36.38620185852051}

并行 restic

$ runrestic init backup
{'init': 2.513888120651245, 'backup': 21.428940057754517, 'total': 23.942883253097534}

(非)结论

在 SSD 上它似乎有助于并行运行。

当我收集到更多数据时,我会报告。

相关内容