基于SSHFS的Rsync挂起

我有sshfs设置连接到另一个系统(Rackspace云网站),我没有ssh访问(但由于某种原因,我可以使用sshfs?去图)。 我正在尝试从sshfs装载rsync文件到我的本地磁盘。 这是几千个小文件(1k-200k)。 有时候,rsync只会暂停并暂停在非常小的文件上。 它会暂停,说一个10K的文本文件5分钟,然后它会继续。

有什么地方我可以看看我的机器上,以确定为什么rsync会像这样挂? 还是有一个很好的机会,这只是另一个问题,我不能做任何事情?

我的rsync选项只是-avrP

好吧,我要刺穿这个,因为我认为我的想法是有道理的。

在这种情况下,你正在处理多个caching,我想这就是让你失望的原因。

rsync所做的第一件事就是确定需要传输哪些文件。 它通常通过在远程端产生一个rsync实例来完成,读取源目录中每个文件的元数据,同时读取本地文件的元数据,然后比较这两个元数据集。 任何新的(或不同的,取决于rsync选项)被传送。

根据rsync,你没有“远程端”。 你在“本地”工作,所以它将遍历目录,源和目的地。

这是非常密集的磁盘,特别是对于大量小文件 – 文件越多,离散磁盘操作越多。 这会导致大量磁盘抖动,并使用这些文件中的元数据填充caching。

请注意,这一切都发生在堆栈中。 您的本地计算机从您通过ssh和本地目录挂载的FUSE文件系统caching元数据。 远程机器从本地磁盘装载caching元数据。 远程计算机运行的VM主机几乎肯定会被超负荷运行,并给您带来巨大的内存空间。

我怀疑当你冻结的时候,你很有可能超越了门槛,而且一切都要赶上,要么就是退步,要么交换。

我会非常感兴趣,看看是否发生这种情况,当你没有磁盘挂载的rsync通过ssh的。