Rsync进度完成后等待很长时间

Rsync进度完成后等待很长时间

当我运行rsync复制大文件时(在本地硬盘驱动器上的目录内)

+ rsync -P bigfile1.img bigfile2.img
bigfile1.img
  6,512,705,536 100%  413.76MB/s    0:00:15 (xfr#1, to-chk=0/1)

它首先显示进度达到 100%,然后等待大约相同的时间,没有任何更改,然后才退出。

这可能是由于一些缓存造成的。

我可以显示真实的进度吗?

答案1

有两件事你可以尝试。

  1. 尝试 --debug=all 或 -v verbose。
  2. 在等待返回提示时尝试 #sstrace -ttT

根据显示的传输速率、文件大小和花费的时间 (0.15) 看起来不错。验证该时间包括等待时间。

答案2

简短的回答:尝试rsync --outbuf=L获取实时进度。

man它可能是输出缓冲,在 rsync 的页面中提到了--bwlimit用于限制带宽的交换机:

--bwlimit=速率

(...)

由于数据的内部缓冲,--progress 选项可能无法准确反映数据发送的速度。这是因为当数据快速缓冲时,某些文件可能显示为快速发送,而当发生输出缓冲区刷新时,其他文件可能显示为非常慢。这可能会在未来版本中得到修复。

开关--outbuf

--outbuf=MODE 这设置输出缓冲模式。该模式可以是“无”(又名“无缓冲”)、“行”或“块”(又名“全”)。您可以为模式指定一个字母,并使用大写或小写。该选项的主要用途是将 Full buffering 更改为当 rsync 的输出进入文件时进行行缓冲 或管道。

相关内容