是否有一个简单的修复方法来提高使用 Ubuntu Gnome 桌面的默认 Déjà Dup Backup 解决方案的备份速度?
实际上,我对每周的重复备份非常满意,但我设置每三个月将完整备份到本地 NAS。对于约 1TB 的数据,这大约需要整整两天的时间。
我认为我的重复解决方案至少存在两个瓶颈:
- 备份仅运行一个核心,
- 它仅将 50 MB 的小块上传到 NAS。
尤其是第二个问题意味着我无法充分利用我的千兆局域网。Duplicity 以大约 25 MiB/s 的速度上传文件。我手动上传一个更大的文件,轻松获得 80 MiB/s(NAS 通过 2 x 1 GbE 绑定连接)。
以下是系统监视器的典型屏幕截图:
有人知道如何提高完整备份速度吗?例如,我可以更改块大小等吗?
答案1
找到了,Deja Dup 会覆盖默认的duplicity
chunk size,源码解释了优缺点:
// Returns volume size in megs
int get_volsize()
{
// Advantages of a smaller value:
// * takes less temp space
// * retries of a volume take less time
// * quicker restore of a particular file (less excess baggage to download)
// * we get feedback more frequently (duplicity only gives us a progress
// report at the end of a volume) -- fixed by reporting when we're uploading
// Downsides:
// * less throughput:
// * some protocols have large per-file overhead (like sftp)
// * the network doesn't have time to ramp up to max tcp transfer speed per
// file
// * lots of files looks ugly to users
//
// duplicity's default is 25 (used to be 5).
//
// For local filesystems, we'll choose large volsize.
// For remote FSs, we'll go smaller.
if (DejaDup.in_testing_mode())
return 1;
else if (backend.is_native())
return 50;
else
return 25;
}
我设法编译了一个自定义版本deja-dup
。因此,我必须执行以下步骤:
克隆源代码
git clone https://gitlab.gnome.org/World/deja-dup.git cd ./deja-dup
切换到支持 gtk3 的 Ubuntu 20.04 旧分支
git checkout --track origin/40
get_volsize()
修补函数的返回值DuplicityJob.vala
并增加版本号。例如。git apply patch40-7-1.diff
patch40-7-1.diff
(0.82 KB)
:diff --git a/libdeja/tools/duplicity/DuplicityJob.vala b/libdeja/tools/duplicity/DuplicityJob.vala index a229e8b0..bb6f77fe 100644 --- a/libdeja/tools/duplicity/DuplicityJob.vala +++ b/libdeja/tools/duplicity/DuplicityJob.vala @@ -1399,9 +1399,9 @@ internal class DuplicityJob : DejaDup.ToolJob if (DejaDup.in_testing_mode()) return 1; else if (backend.is_native()) - return 50; + return 500; else - return 25; + return 250; } void disconnect_inst() diff --git a/meson.build b/meson.build index 266d7a36..fed8434d 100644 --- a/meson.build +++ b/meson.build @@ -4,7 +4,7 @@ # SPDX-FileCopyrightText: Michael Terry project('deja-dup', ['vala', 'c'], - version: '40.7', + version: '40.7.1', license: 'GPL-3.0-or-later', meson_version: '>= 0.47'
制作并安装(包括安装缺少的软件包):
meson . _build ninja -C _build ninja -C _build install
瞧!
性能更新
我刚刚仔细检查了完整备份的速度,它提高了 50%(从 24 小时缩短到 12 小时左右)。不幸的是,这仍然不完美,因为它会打包每个包并在开始下一个包之前上传。但仍然比以前好...