除了“fastcheck”之外,还有什么可以加快 Unison 的速度吗?

Ada*_*ski 1 unison

我经常使用 Unison 在用户工作的工作站之间同步用户的主目录。不幸的是,随着公司的发展,Unison 在确定哪些文件已更改方面变得越来越慢。相比之下,实际传输所花费的时间可以忽略不计。

同步是在星型拓扑中完成的,RAID-6一致服务器位于中心。有些工作站使用 Windows(使用 NTFS),有些工作站使用 Ext-4 或 BTRFS(!)。

在撰写本文时,有一位用户的主目录有 45GB 大,包含 100K 文件,他的完全同步时间大约需要 30 分钟。请注意,简单的目录遍历find >null只需不到 2 分钟。

进一步加快这一进程的策略是什么?(除了减少要同步的文件数量)我相信理论上 Unison 可以加速,但这个fastcheck选项还不够。

Ada*_*ski 5

好的,我找到了罪魁祸首:一致忽略了和文件fastcheck的选项,并始终对它们执行完整的比较。这样做是因为 Excel 习惯于修改 xls 文件而不更改上次修改日期。xlsmpp

对我们来说不幸的是,xls生成的文件大约占文档总量的 20%。

编辑/usr/bin/unison十六进制编辑器并替换xls为不可能找到的内容(例如xxx)就可以了。

在 Unix 文件系统(btrfs、ext4)中,此过程应该是安全的,因为文件的任何更改都应该更改 inode 号,并且一致应该使用此信息(如果可用)。至于基于ntfs的客户端,我认为我们应该忍受缓慢的时间......或者也许有一些替代方案(放弃Excel或更改文件系统)。

经过这次黑客攻击,齐奏速度加快了十倍以上!

  • 如果文件就地更改,则索引节点不会更改。只有当文件被新文件替换时(正如许多编辑器所做的那样),它才会获得新的索引节点号。不过,文件修改时间将在更改时更新。 (2认同)