Rsync挂起:将file_list指针数组展开为N个字节,确实移动了

在将某些文件从本地文件夹传输到NFS文件夹之后,Rsync将进入“可中断睡眠”模式。 我试图备份的文件夹包含超过180GB的数据。

这是什么rsync输出之前挂起:

[sender] expand file_list pointer array to 524288 bytes, did move 

我正在运行的Ubuntu服务器14.04 LTS rsync版本3.1.0协议版本31,我运行rsync与这些选项:

 /usr/bin/rsync -rHAXxvvut --numeric-ids --progress {SRC_FOLDER} {NFS_FOLDER} 

感谢任何提示

两个说法可能有帮助

  • 总是满意-a选项(来自man“ 归档模式;等于-rlptgoD(no -H,-A,-X) ”)

  • rsync可能正在等待NFS访问文件。 看起来NFS能够实际上获得rsynclocking(可能覆盖某个文件时),而且在进入其“睡眠”之前查看哪个文件被rsync访问会很有趣。 有一个命令来查看rsync当前打开的文件lsof -ad3-999 -c rsync (来自askubuntu )

使用rsync将内容传输到NFS文件夹可能效率非常低。 考虑一下当rsync想要获取远程文件的校验和或修改远程文件时涉及的内容。 rsync与在文件服务器上运行的rsync进程交谈要好得多。 如果可能的话,我会先改变它,然后看看你目前的问题是否仍然存在。 即通过ssh使用rsync或运行rsync守护程序进程,并将NFS完全保留在图片之外。

要找出rsync正在做什么, strace可能是有用的:

 strace -p <PID> 

或者像这样strace启动rsync:

 strace rsync [rsync options] <src> <target> 

通过PID连接到正在运行的进程可能需要root权限,尽pipe可以更改(root)。

我遇到了同样的问题,并设法通过远程传输来解决问题。 例如,而不是做rsync -avvxAX source/ destination/ ,我做了rsync -avvxAX source/ root@localhost:destination/

rsync可能对本地传输有特定的优化。 直到我们能够找出问题的确切原因,这个解决方法为我解决了这个问题。

我的系统:Gentoo Linux,内核4.3.0,systemd,rsync 3.1.2协议版本31