提高 RSYNC 扫描速度/替代方法?

提高 RSYNC 扫描速度/替代方法?

我正在使用 rsync 将应用程序日志文件从一台服务器传输到另一台服务器。它工作正常,但扫描目录需要很长时间。我有大约 160,000 个日志文件和几千个目录,所以我可以理解为什么扫描需要这么长时间。但是,在任何给定的同步中,只有少数文件会发生变化,所以我想知道是否有更有效的方法或 rsync 选项可以加快速度?日志文件本身很小(每个只有几 kb)。

谢谢你!

答案1

来自手册页

从 rsync 3.0.0 开始,使用的递归算法现在是一种增量扫描,它使用的内存比以前少得多,并且在完成前几个目录的扫描后开始传输。此增量扫描仅影响我们的递归算法,不会改变非递归传输。而且,只有当传输的两端至少为 3.0.0 版本时,才有可能。

某些选项需要 rsync 知道完整的文件列表,因此这些选项会禁用增量递归模式。这些选项包括: --delete-before--delete-after--prune-empty-dirs--delay-updates。因此,当您指定 --delete 时,默认删除模式现在是 --delete-during当连接的两端至少为 3.0.0 时(使用 --del--delete-during明确请求此改进的删除模式)。另请参阅--delete-delay比使用 更好的选项--delete-after

如果您正在使用上述任何选项或旧版本的 rsync,则可能会禁用改进的增量递归模式。否则,唯一的其他选项是让 rsync 考虑更少的文件。

相关内容