Hi all,

I am trying to get to the bottom of a strange rsync performance problem.

On a specific guest OS, and only on this guest OS, rsync is giving modem-like 
transfer speeds. This happens on delta transfers, and whole file transfers.


[root@arnie ~]# rsync -avz --progress --sparse 
arnie.example.com:/home/backup/example/cuttysark.example.com/var-lib-libvirt-images-snapshot/
 /home/backup/example/cuttysark.example.com/var-lib-libvirt-images-snapshot/
receiving incremental file list
./
.timestamp
              0 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=23/25)
3cx.example.com.img
  8,589,934,592 100%  771.32kB/s    3:01:15 (xfr#2, to-chk=22/25). <---- s l o w
machine.example.img
 14,458,254,200  29%  208.50kB/s   45:06:35  ^Crsync error: received SIGINT, 
SIGTERM, or SIGHUP (code 20) at rsync.c(644) [generator=3.1.3]
rsync: [generator] write error: Broken pipe (32) <---- s  l  o  w  e  r


[root@arnie images]# rsync --verbose --progress --compress --sparse 
--copy-devices --partial --whole-file --inplace 
blackadder.example.com:/dev/dm-8 test.img
dm-8
     47,825,017 -2147483648%  587.01kB/s   ??:??:??   <---- s l o w


The above transfer started off for a few seconds at full speed, but then 
suddenly dropped to treacle slow.


First, we check the network underneath rsync. We're tunnelling rsync through 
ssh, so we test bandwidth through ssh with perf over and ssh tunnel, and we get 
expected speed for this link.

[root@arnie ~]# iperf -c [::1]:5001 -V
------------------------------------------------------------
Client connecting to ::1, TCP port 5001
TCP window size: 2.50 MByte (default)
------------------------------------------------------------
[  1] local ::1 port 42324 connected with ::1 port 5001
^C[ ID] Interval       Transfer     Bandwidth
[  1] 0.00-19.28 sec  11.9 MBytes  5.19 Mbits/sec. <---- fast enough


Then we check the disk underneath rsync:

[root@arnie images]# dd if=/dev/urandom of=random.img count=1024 bs=10M 
status=progress
1604321280 bytes (1.6 GB, 1.5 GiB) copied, 16 s, 100 MB/s^C
159+0 records in
159+0 records out
1667235840 bytes (1.7 GB, 1.6 GiB) copied, 16.7261 s, 99.7 MB/s. <---- fast 
enough


Then the RAM under the guest:

[root@arnie ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          3.6Gi       2.0Gi       394Mi       3.0Mi       1.2Gi       
1.3Gi. <---- 1.3GB seems fine?
Swap:         923Mi        89Mi       834Mi


Then we check rsync running on the hypervisor of this guest:


[root@emma images]# rsync --verbose --progress --compress --sparse 
--copy-devices --partial --whole-file --inplace 
blackadder.example.com:/dev/dm-8 test.img
dm-8
    173,316,344 -2147483648%    6.07MB/s   ??:??:??  <---- fast enough


On an identically sized guest in a different datacenter:

[root@arnie images]# rsync --verbose --progress --compress --sparse 
--copy-devices --partial --whole-file --inplace 
blackadder.example.com:/dev/dm-8 
/home/backup/example/blackadder.example.com/vg001-var_lib_libvirt_images-snapshot.img
dm-8
    170,053,588 -2147483648%   10.64MB/s   ??:??:??  <---- fast enough


>From what I can see:

- The guest OS networking is fine, including bandwidth over ssh.
- The hypervisor rsync works fine.
- A guest OS in another datacenter works fine.
- CPU is not being maxed out, either on the source or target. iowait is not 
showing anything significant. RAM seems modest.
- rsync on the guest is v3.1.3 on Rocky8.


I am somewhat stuck.

Google is of no help, it's all "it might be this, it might be that", but I've 
eliminated everything I have found and still the problem remains.

Has anyone encountered anything like this before?

Regards,
Graham
--


-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html

Reply via email to