The iperf3 test shows speeds of 2.3 gbps or higher on all machines.
- Server info
$ cat /etc/fedora-release
Fedora release 40 (Forty)
$ uname -a
Linux bypass 6.10.6-200.fc40.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Aug 19 14:09:30 UTC 2024 x86_64 GNU/Linux
$ rsync --version
rsync version 3.3.0 protocol version 31
- Shell script: send 1MB file
#!/bin/bash
start_time=$(date +"%Y-%m-%d %H:%M:%S")
start_timestamp=$(date +%s)
echo "Script started at: $start_time"
# rsync send 1MB file
rsync -vvvavhP testfile back2:/dst/temp/2024
end_time=$(date +"%Y-%m-%d %H:%M:%S")
end_timestamp=$(date +%s)
execution_time=$(($end_timestamp - $start_timestamp))
echo "Script ended at: $end_time"
echo "Total execution time: ${execution_time} seconds"
- result: Fedora-server → backupserver
$ ./rsync.sh
Script started at: 2024-08-29 04:59:52
cmd=<NULL> machine=back2 user=<NULL> path=/dst/temp/2024
cmd[0]=ssh cmd[1]=back2 cmd[2]=rsync cmd[3]=--server cmd[4]=-vvvvlogDtpre.iLsfxCIvu cmd[5]=--partial cmd[6]=. cmd[7]=/dst/temp/2024
opening connection using: ssh back2 rsync --server -vvvvlogDtpre.iLsfxCIvu --partial . /dst/temp/2024 (8 args)
msg checking charset: UTF-8
(Server) Protocol versions: remote=31, negotiated=31
(Client) Protocol versions: remote=31, negotiated=31
sending incremental file list
[sender] make_file(testfile,*,0)
[sender] flist start=1, used=1, low=0, high=0
[sender] i=1 <NULL> testfile mode=0100644 len=1,000,000 uid=0 gid=0 flags=1005
send_file_list done
[sender] flist_eof=1
file list sent
send_files starting
server_recv(2) starting pid=6797
uid 0(root) maps to 0
process has 2 gids: 100 101
gid 0(root) maps to 0
recv_file_name(testfile)
received 1 names
[Receiver] flist start=1, used=1, low=0, high=0
[Receiver] i=1 1 testfile mode=0100644 len=1,000,000 gid=(0) flags=1400
recv_file_list done
[Receiver] flist_eof=1
get_local_name count=1 /dst/temp/2024
generator starting pid=6797
delta-transmission enabled
recv_generator(testfile,1)
send_files(1, testfile)
count=0 n=0 rem=0
send_files mapped testfile of size 1000000
calling match_sums testfile
testfile
32.77K 3% 0.00kB/s 0:00:00
sending file_sum
false_alarms=0 hash_hits=0 matches=0
1.00M 100% 307.47MB/s 0:00:00 (xfr#1, to-chk=0/1)
sender finished testfile
generate_files phase=1
recv_files(1) starting
recv_files(testfile)
data recv 32768 at 0
data recv 32768 at 32768
data recv 32768 at 65536
data recv 32768 at 98304
data recv 32768 at 131072
data recv 32768 at 163840
data recv 32768 at 196608
data recv 32768 at 229376
data recv 32768 at 262144
data recv 32768 at 294912
data recv 32768 at 327680
data recv 32768 at 360448
data recv 32768 at 393216
data recv 32768 at 425984
data recv 32768 at 458752
data recv 32768 at 491520
data recv 32768 at 524288
data recv 32768 at 557056
data recv 32768 at 589824
data recv 32768 at 622592
data recv 32768 at 655360
data recv 32768 at 688128
data recv 32768 at 720896
data recv 32768 at 753664
data recv 32768 at 786432
data recv 32768 at 819200
data recv 32768 at 851968
data recv 32768 at 884736
data recv 32768 at 917504
data recv 32768 at 950272
data recv 16960 at 983040
got file_sum
set modtime of .testfile.JhPsBl to (1724874533) Thu Aug 29 04:48:53 2024
renaming .testfile.JhPsBl to testfile
send_files phase=1
recv_files phase=1
generate_files phase=2
send_files phase=2
send files finished
total: matches=0 hash_hits=0 false_alarms=0 data=1000000
recv_files phase=2
recv_files finished
generate_files phase=3
generate_files finished
client_run waiting on 928415
sent 1.00M bytes received 1.74K bytes 18.73K bytes/sec
total size is 1.00M speedup is 1.00
[sender] _exit_cleanup(code=0, file=main.c, line=1338): entered
[sender] _exit_cleanup(code=0, file=main.c, line=1338): about to call exit(0)
Script ended at: 2024-08-29 05:00:45
Total execution time: 53 seconds
It took 53 seconds to send a single file of 1 MB in size.
However, on other machines, the file transfer completes instantly (0 seconds).
othermachine → backupserver
Script started at: 2024-08-29 05:00:59
cmd=<NULL> machine=back2 user=<NULL> path=/dst/temp/2024
cmd[0]=ssh cmd[1]=back2 cmd[2]=rsync cmd[3]=--server cmd[4]=-vvvvlogDtpre.iLsfxCIvu cmd[5]=--partial cmd[6]=. cmd[7]=/dst/temp/2024
opening connection using: ssh back2 rsync --server -vvvvlogDtpre.iLsfxCIvu --partial . /dst/temp/2024 (8 args)
msg checking charset: UTF-8
(Client) Protocol versions: remote=31, negotiated=31
(Server) Protocol versions: remote=31, negotiated=31
sending incremental file list
[sender] make_file(temp-file,*,0)
[sender] flist start=1, used=1, low=0, high=0
[sender] i=1 <NULL> temp-file mode=0100644 len=1,000,000 uid=197108 gid=197121 flags=1005
send_file_list done
[sender] flist_eof=1
file list sent
send_files starting
server_recv(2) starting pid=7078
uid 197108(Administrator) maps to 197108
process has 2 gids: 100 101
gid 197121() maps to 197121
recv_file_name(temp-file)
received 1 names
[Receiver] flist start=1, used=1, low=0, high=0
[Receiver] i=1 1 temp-file mode=0100644 len=1,000,000 gid=(197121) flags=1400
recv_file_list done
[Receiver] flist_eof=1
get_local_name count=1 /dst/temp/2024
generator starting pid=7078
delta-transmission enabled
recv_generator(temp-file,1)
send_files(1, temp-file)
count=0 n=0 rem=0
send_files mapped temp-file of size 1000000
calling match_sums temp-file
temp-file
32.77K 3% 0.00kB/s 0:00:00
sending file_sum
false_alarms=0 hash_hits=0 matches=0
1.00M 100% 307.47MB/s 0:00:00 (xfr#1, to-chk=0/1)
sender finished temp-file
generate_files phase=1
recv_files(1) starting
recv_files(temp-file)
data recv 32768 at 0
data recv 32768 at 32768
data recv 32768 at 65536
data recv 32768 at 98304
data recv 32768 at 131072
data recv 32768 at 163840
data recv 32768 at 196608
data recv 32768 at 229376
data recv 32768 at 262144
data recv 32768 at 294912
data recv 32768 at 327680
data recv 32768 at 360448
data recv 32768 at 393216
data recv 32768 at 425984
data recv 32768 at 458752
data recv 32768 at 491520
data recv 32768 at 524288
data recv 32768 at 557056
data recv 32768 at 589824
data recv 32768 at 622592
data recv 32768 at 655360
data recv 32768 at 688128
data recv 32768 at 720896
data recv 32768 at 753664
data recv 32768 at 786432
data recv 32768 at 819200
data recv 32768 at 851968
data recv 32768 at 884736
data recv 32768 at 917504
data recv 32768 at 950272
data recv 16960 at 983040
got file_sum
set modtime of .temp-file.2nyVRB to (1724874747) Thu Aug 29 04:52:27 2024
renaming .temp-file.2nyVRB to temp-file
send_files phase=1
recv_files phase=1
generate_files phase=2
send_files phase=2
send files finished
total: matches=0 hash_hits=0 false_alarms=0 data=1000000
recv_files phase=2
recv_files finished
generate_files phase=3
generate_files finished
client_run waiting on 2016
sent 1.00M bytes received 1.77K bytes 2.00M bytes/sec
total size is 1.00M speedup is 1.00
[sender] _exit_cleanup(code=0, file=main.c, line=1338): entered
[sender] _exit_cleanup(code=0, file=main.c, line=1338): about to call exit(0)
Script ended at: 2024-08-29 05:00:59
Total execution time: 0 seconds