pro*_*let 8 performance backup
最近几天我一直在玩 obnam,虽然它看起来很有前途,而且似乎基本上提供了我在备份工具中想要的一切,但我对它的性能非常失望。事实上,它太慢了,我怀疑 obnam 在这里甚至没有错,而是我环境中的某些东西导致了它。
所以我主要想知道,是否还有其他人在使用 obnam 或者对它的内部结构有足够的了解来识别问题。
据我目前所知,obnam 似乎为每个备份的文件分叉了一个单独的 gpg 进程。从 htop、strace 和 iostat 来看,初始备份的速度主要受不断分叉的限制,而 CPU 和驱动器(不涉及网络)大多处于空闲状态,低于 20% 的利用率。
我的备份总计约 500.000 个文件,总共有 170 GiB 的数据。因此,对于每次备份运行,gpg 会分叉 500.000 次。我什至不感到惊讶的是,初始运行几乎需要一整天的时间,而在大多数文件未更改的情况下,另一次运行需要三个多小时。但这真的是 obnam 用户应该期望的性能吗?为了比较:rsnapshot(相同数据、相同机器、相同驱动器)的增量运行大约需要四分钟。当然,没有涉及加密,但这不应该那么重要。
所以,问清楚一点:其他人的机器是否也不能每秒运行 gpg(加密一小块数据)超过 50 次,最终使 obnam 成为一个几乎无法使用的缓慢工具?还是只有我一个人?
(FWIW,我的机器是带有 8G RAM 和 SSD 驱动器的 Core i5-2500,运行 Gentoo。备份到 HDD,但我无法观察到备份到 SSD 有什么区别,因为它不是 I/O -边界。)
我想我会通过几种方式来解决这个问题。首先,我会尝试使用以下方法自行诊断。
\n\n对于初学者,您可以像这样记录消息obnam
:
$ obnam --log obnam.log\n
Run Code Online (Sandbox Code Playgroud)\n\n您还可以通过开关提高日志记录级别--log-level
以获取更多详细信息。
--log=FILE write log entries to FILE (default is to not write log\n files at all); use "syslog" to log to system log, or\n "none" to disable logging\n--log-level=LEVEL log at LEVEL, one of debug, info, warning, error,\n critical, fatal (default: info)\n
Run Code Online (Sandbox Code Playgroud)\n\n您还可以从项目常见问题解答obnam
中的摘录中了解正在执行的操作,如下所示:
\n\n\n如果
\n\nOBNAM_PROFILE
环境变量包含文件名,\n 分析数据将存储在此处,稍后可以使用\n 查看obnam-viewprof
:Run Code Online (Sandbox Code Playgroud)\n\n$ OBNAM_PROFILE=obnam.prof obnam ... obnam-viewprof obnam.prof | less\n
与特定设置无关的性能问题也可以使用
\nobnam-benchmark tool
.
如果进行一些自我驱动的调查后性能仍然不确定,那么我会在项目的网站上开一张票。据我所知,开发人员有一定的反应能力,他们可能是最擅长解决项目问题的人。
\n\nobnam
似乎只使用 SFTP,因此导致问题的原因应该非常明显。我还会考虑单独对 SFTP 性能进行基线分析,以便您在尝试从测试本身中获取此信息之前,可以了解系统 + 网络连接的理论最大值应该是多少obnam
。
找到这篇博文,作者在其中对该类别中的几个选项进行了比较。文章标题为:比较 rsnapshot 和 obnam 进行计划的大型备份。
\n\n这篇文章强调了一些非常糟糕的表现,IMO,obnam
这似乎与您所描述的内容相符。
奥南性能
\n\n\n\n\n完全备份 /home 后(需要几天时间!),几天后进行新的运行(由 Linux time 命令计时):
\n\n备份3443706个文件,127小时48分49秒上传94.0 GiB,平均速度214.2 KiB/s830个文件;1.24 GiB (0 B/s) 实际 7668m56.628s 用户 4767m16.132s 系统 162m48.739s
\n\n从 obname 日志文件:
\n\nRun Code Online (Sandbox Code Playgroud)\n\n2012-11-17 12:41:34 INFO VFS: baseurl=/home read=0 written=0\n 2012-11-21 23:09:36 INFO VFS: baseurl=/backups/backup_home read=2727031576964 written=150015706142 \n 2012-11-21 23:09:36 INFO Backup performance statistics: \n 2012-11-21 23:09:36 INFO * files found: 3443706 \n 2012-11-21 23:09:36 INFO * uploaded data: 100915247663 bytes (93.9846482715 GiB) 2012-11-21 23:09:36 INFO * duration: 460128.627629s \n 2012-11-21 23:09:36 INFO * average speed: 214.179341663 KiB/s\n 2012-11-21 23:09:36 INFO Backup finished. 2012-11-21 23:09:36 INFO Obnam ends\n 2012-11-21 23:09:36 INFO obnam version 1.2 ends normally\n
因此:大约需要 5 天的时间来备份大约 100 GB 的更改数据\xe2\x80\xa6 机器上的负载并不高,无论是在 CPU 方面,还是在 RAM 方面。/backups/backup_home 中的磁盘\n 使用量为 5.7T,/home 的磁盘使用量为 6.6T,\n 因此似乎存在一些重复数据删除。
\n
快照性能
\n\n\n\n\n*阁楼与 obnam\n\n/home 的完整备份到(根据日志文件):
\n\nRun Code Online (Sandbox Code Playgroud)\n\n[27/Nov/2012:12:55:31] /usr/bin/rsnapshot daily: started \n [27/Nov/2012:12:55:31] echo 17632 > /var/run/rsnapshot.pid \n [27/Nov/2012:12:55:31] mkdir -m 0700 -p /backups/backup_home_rsnapshot/ \n [27/Nov/2012:12:55:31] mkdir -m 0755 -p /backups/backup_home_rsnapshot/daily.0/ \n [27/Nov/2012:12:55:31] /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /home /backups/backup_home_rsnapshot/daily.0/localhost/\n [28/Nov/2012:23:16:16] touch /backups/backup_home_rsnapshot/daily.0/\n [28/Nov/2012:23:16:16] rm -f /var/run/rsnapshot.pid\n [28/Nov/2012:23:16:16] /usr/bin/rsnapshot daily: completed successfully\n
因此:6.3TB 的完整备份大约需要 1.5 天。一天后进行增量备份:
\n\nRun Code Online (Sandbox Code Playgroud)\n\n[29/Nov/2012:13:10:21] /usr/bin/rsnapshot daily: started\n [29/Nov/2012:13:10:21] echo 20359 > /var/run/rsnapshot.pid\n [29/Nov/2012:13:10:21] mv /backups/backup_home_rsnapshot/daily.0/ /backups/backup_home_rsnapshot/daily.1/\n [29/Nov/2012:13:10:21] mkdir -m 0755 -p /backups/backup_home_rsnapshot/daily.0/\n [29/Nov/2012:13:10:21] /usr/bin/rsync -a --delete --numeric-ids -- relative --delete-excluded --link-dest=/backups/backup_home_rsnapshot/daily.1/localhost/ /home/backups/backup_home_rsnapshot/daily.0/localhost/\n [29/Nov/2012:13:25:09] touch /backups/backup_home_rsnapshot/daily.0/\n [29/Nov/2012:13:25:09] rm -f /var/run/rsnapshot.pid\n [29/Nov/2012:13:25:09] /usr/bin/rsnapshot daily: completed successfully\n
所以:15 分钟...更改的数据达到 21GB。
\n
不是那么彻底,但提到了 的缺点之一obnam
是它比 .. 慢得多attic
。
\n\n\n奥布南优点:
\n\n\n
\n\n- 有据可查
\n- 活跃的邮件列表
\n- 可用套餐
\n奥布南缺点:
\n\n\n
\n\n- 非常慢
\n- 大备份
\n阁楼优点:
\n\n\n
\n\n- 备份小得多(即使没有重复数据删除)
\n- 更好的重复数据删除
\n- 快多了
\n阁楼缺点:
\n\n\n
\n- 存储库格式未记录
\n- 不是一个庞大的用户社区
\n
显示的一些测试数据似乎表明速度obnam
确实很慢。
\n\n\n通过一般的 WiFi 连接,从本地 SSD 到远程 HD:
\n\nRun Code Online (Sandbox Code Playgroud)\nrsync: 0:24 0:01\n Attic ssh: 0:28 0:05\n Attic sshfs: 0:51 0:08\n Obnam sftp: 8:45 0:21\n Obnam sshfs: 25:22 0:22\n