我有sshfs设置连接到另一个系统(Rackspace云站点),我没有ssh访问权限(但出于某种原因,我可以使用sshfs吗?)算了吧)。我正在尝试将rsync文件从sshfs挂载到本地磁盘。它是几千个小文件(1k-200 k)。有时,rsync只会在非常小的文件上暂停并挂起一段时间。它将暂停,例如一个10k的文本文件,大约5分钟,然后它将继续。
有什么地方我可以看看我的机器,以确定为什么rsync会这样挂?或者有很好的可能性,这仅仅是一个问题,在另一端,我不能做任何事?
我的rsync选项就是简单的-avrP。
发布于 2012-01-10 16:39:55
好吧,我要试一试,因为我认为我的想法是有道理的。
在这种情况下,您正在处理多个缓存,我认为这就是绊倒您的原因。
rsync做的第一件事是确定它需要传输哪些文件。它通常通过在远程端生成一个rsync实例,读取源目录中每个文件的元数据,同时读取本地文件的元数据,然后对这两个元数据集进行比较。任何新的(或不同的,取决于rsync选项)都会被转移。
根据rsync的说法,你没有“远程的一面”。您正在“本地”工作,因此它将遍历源和目标的两个目录。
这是非常密集的磁盘,特别是与吨小文件-更多的文件,更多的离散磁盘操作。这会导致大量磁盘崩溃,而且它还会将这些文件中的元数据填充到缓存中。
注意,这种情况一直在堆栈中发生。本地机器从通过ssh和本地目录安装的FUSE文件系统缓存元数据。远程机器从本地磁盘挂载缓存元数据。而且您的远程计算机运行的VM主机几乎肯定是过度提交的,并且给您带来了膨胀的内存。
我怀疑,当它结冰时,你很有可能会超过阈值,所有的东西都得赶上来,要么去卸载,要么掉期。
我很想知道,当您在没有磁盘挂载的ssh上执行rsync时,是否会发生这种情况。
https://serverfault.com/questions/348533
复制相似问题