rsync刚刚挂起,正在构建文件列表


20
[root@centos /]# rsync -av --exclude thumbs /storage root@xx.27.1.xx:/storage
root@xx.27.1.xx's password: 
building file list ... 

我已经坐了大约一个小时了……这是135GB的图片和文件夹

/storage 是已安装的ext3 scsi驱动器。

rsync这么长时间计算文件/目录是否正常?


多少个文件?拥有大量文件,这将需要一段时间。
赫尔维克,2010年

大概数千...用户上传的图片目录...
Andrew Fashion 2010年

我已经看到,当成千上万的文件成千上万的文件时,rsync的这一部分花费了一个多小时。如果您运行“ top”,是否看到I / O等待?
troyengel 2010年

只是因为我很好奇,您可以跑步df -i并告诉我们您IUsed在/存储上有什么用吗?这将使我们大致了解您有多少个文件+文件夹。
Zoredache

1383641,那是文件数量吗?
Andrew Fashion

Answers:


24

rsync 2.x确实会预先构建完整的文件列表。

添加-P选项,您将看到进度指示器。

如果您认为它确实已挂起,请在另一个终端中找到rsync的pid,然后

  1. 运行strace -p PID,看看它在做什么。(按^ C键停止。)

  2. 运行ps -o wchan PID以查看其在内核中的位置。


strace好酷!您可能会发现循环中正在发生某些事情:就像引用其祖先目录之一的链接一样。以我为例,我使用的虚拟文件系统没有深度限制,即“无限”许多子目录tagfs/books/+/books/+/books/+/ ...
Zaz

@Zaz我也有大量的子目录。但这是在我的系统设计中。有办法解决吗?
user1641443

@ user1641443:对不起,那超出了我。
Zaz

@ user1641443:1:像马丁所说的那样尝试rsync> 3.0。2:在较小的子树上分别运行多个rsync进程。3:打开您自己的单独问题。
poolie

15

您应该升级到rsync 3.0.x,在这里您将获得增量文件列表的好处,如此处所述。我正在同步数百万个图像(总计约200GB),并且从rsync 2.x升级到3.x时看到了巨大的加速。

即使这样,可能仍需要很长时间才能浏览所有这些数据。就我而言,两台功能强大的DL380 G5服务器之间仍然需要一个多小时。


另请注意,某些标志会强制执行旧的行为;对我来说,那是--delay-updates
熊加米奥夫

1
@XiongChiamiov我正在使用的唯一选项是“ -a”和“ --progress”,而版本3.1.x 仍在构建增量文件列表。为什么?
Michael

3

之前也提到这种du情况。这个文件系统出了点问题,而且rsync已经发生了什么du

您可以检查的一件事是查找表明磁盘问题的内核错误消息。输入dmesg并查看底部的内容。


1

消息“正在构建文件列表...”后的挂起可能是由于MTU不匹配引起的,例如,如果您已使用MTU 9000设置了网络接口,但没有在小数据包之间进行切换(例如连接到rsync服务器)会通过,但不会通过(例如发送文件列表)。


经过大量搜索后,我发现此问题促使我去检查-在标准1450 mtu的vpn上运行rsync,但我无法控制站点之间的设备-将vpn的mtu更改为1430,中提琴rsync工作100%(并且突然之间其他网络异常也消失了!)谢谢!
l0ft13 '18

0

基于此以及您提出的其他du /storage悬空问题,我认为问题不是du还是rsync不是,而是存在一些问题/storage

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.