AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1310395
Accepted
wittich
wittich
Asked: 2021-01-24 06:46:31 +0800 CST2021-01-24 06:46:31 +0800 CST 2021-01-24 06:46:31 +0800 CST

使用 Déjà Dup / Duplicity 提高完整备份速度

  • 772

使用 Ubuntu Gnome 桌面的默认 Déjà Dup Backup 解决方案是否可以轻松修复两个来提高备份速度?

实际上,我对每周的重复备份非常满意,但我将其设置为每三个月对本地 NAS 进行一次完整备份。对于约 1TB 的数据,这大约需要两天时间。

似曾相识备份

我相信我的双重解决方案至少存在两个瓶颈:

  1. 备份只运行一个核心,并且
  2. 它仅将 50 MB 的小块上传到 NAS。

特别是第二个问题意味着我不能使用我的千兆局域网的全部容量。Duplicity 以大约 25 MiB/s 的速度上传文件。我手动上传了一个更大的文件,我很容易得到 80 MiB/s(NAS 通过 2 x 1 GbE 键连接)。

这是系统监视器的典型屏幕截图: 屏幕截图 系统监视器 gnome

有人知道如何提高完整备份速度吗?例如。我可以更改块大小等吗?

gnome
  • 1 1 个回答
  • 841 Views

1 个回答

  • Voted
  1. Best Answer
    wittich
    2021-01-26T14:58:50+08:002021-01-26T14:58:50+08:00

    找到它,Deja Dup 会覆盖默认的duplicity块大小。源码说明了优缺点:

      // 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. 因此,我必须执行以下步骤:

    1. 克隆源代码

      git clone https://gitlab.gnome.org/World/deja-dup.git
      cd ./deja-dup
      
    2. 使用 gtk3 支持 Ubuntu 20.04 切换到旧分支

      git checkout --track origin/40
      
    3. 修补函数的返回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'
      
    4. 制作和安装(包括安装缺少的包):

      meson . _build
      ninja -C _build
      ninja -C _build install
      

    瞧

    自定义编译的 deja dup


    关于性能的更新

    我只是仔细检查了完整备份的速度,它提高了 50%(从 24 小时到大约 12 小时)。不幸的是,这仍然不完美,因为它会打包每个包并在开始下一个包之前上传它。不过还是比以前好...

    系统监视器中改进上传的屏幕截图

    • 4

相关问题

  • 如何安装 KDE?

  • 为什么我的时钟、指示器小程序和通知区域有时会在我重新启动时移动?我怎样才能防止这种情况?

  • 停止菜单图标闪烁

  • 是否有适用于 IMAP 邮件帐户的 Gnome 小程序?

  • 如果顶部面板中缺少会话小程序,如何注销?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve