嘿,感谢您对 restic 的关注。 我在演讲中提到的大约 300MiB 的 ram 数量用于两件事(主要):
总结一下我上面的观点:它是计划好的,将在某个时间点实施。
听起来不错。 那么我想保持这个问题开放以跟踪该功能。
同意。
我也会从服务器的角度对这个主题感兴趣,所以不一定是低内存但“仍然不够”。 :) 例如,我有一个具有 ~950GB 数据( scanned 64173 directories, 2147728 files in 2:41
)和 2GB RAM 的邮件服务器,我遇到了带有 restic 的 OOM(在ionice -c 3 nice -n 19
下运行)。 是否有任何已知数字可用于计算 restic 的内存需求(每个文件/每个 GB/....)? (我在各种不同的 VM 中遇到了带有 restic 的 OOM,知道这些需求会让生活更轻松,如果有任何方法可以减少内存消耗,那就太好了。)
谢谢!
我的经验是大约 4GB 的 RAM 用于 1.5TB 存储库大小(用于备份)。 prune 需要更多(约 9-10GB 的 RAM)。
内存使用主要不取决于特定机器上的数据大小,而主要取决于存储库大小。 因此,如果 restic 存储库本身约为 1TB,则不可能在具有 2GB RAM(无交换)的机器上备份 100KB 文件。
这里:
restic 0.8.3 (v0.8.3-11-gda77f4a2)
compiled with go1.9.4 on linux/amd64
118775 directories
829113 files
129.220 GiB
这方面有什么进展吗? 喜欢 restic,但由于内存耗尽,我的备份不再完成(1.5TB 存储库,使用 ~23G RAM,b2 后端)。 Afaik,目前只能通过修改源本身来修改并发(https://github.com/restic/restic/issues/979#issuecomment-374359647),但这并不是真正可维护的。
在内存使用要求方面有什么变化吗?
我也遇到了这个问题。 2GB 系统 250GB 静态存储库。 跑步:
ionice -c 3 nice -n 19 ~/local/bin/restic -r /mnt/restic -p rk check --read-data-subset 3/7
(也使用 4/14 尝试从 3/7 减少内存使用)需要 1.7G。 完成命令可能需要 10 或 12 个小时,因为糟糕的系统正在交换大脑。 此外,由于交换,该系统对于其他任何事情几乎都没用。
我喜欢休息,但这是不可持续的。
有人可以澄清这个问题的实际建议是什么吗? 我的意思是,如果内存消耗/需求可以更小,为什么我们不应该这样做,而是使用命令行开关来启用使用更少的内存?
我认为如果可能的话,分配更少的空间意味着进程会变慢,所以默认情况下不会这样做?
在内存使用方面已经有了改进,其他一些正在筹备中。
原则上,我赞同@rawtaz的论点,即减少内存使用量将使 restic 可用于更广泛的设备领域。
也就是说,当然有可能进一步降低内存使用量,尤其是速度。 我在 #2794 中开始研究与索引相关的可能性
对此的适当解决方案很可能使用磁盘存储库索引或允许客户端仅加载部分索引,如#1988 中所述。
最有用的评论
这方面有什么进展吗? 喜欢 restic,但由于内存耗尽,我的备份不再完成(1.5TB 存储库,使用 ~23G RAM,b2 后端)。 Afaik,目前只能通过修改源本身来修改并发(https://github.com/restic/restic/issues/979#issuecomment-374359647),但这并不是真正可维护的。