I am using rsync to sync around ~2TB of data to a mechanical HDD-5400RPM. It's taking way too long.
How can I improve the sync and check speeds to get as close as possible to maximum/optimal?
Here is the rsync sync command I am running with the flags:
rsync -vvv \ # -v: Basic information, like the files being transferred. # -vv: More details, such as when files are being skipped. # -vvv: Even more detailed, including internal operations and potentially overwhelming. -z \ # Compress data during transfer -h \ # Human-readable -a \ # Archive mode -A \ # Preserve ACLs -H \ # Preserve hard links -S \ # Handle sparse files efficiently -X \ # Preserve extended attributes "$SRC" \ "$DEST_DIR" \ --log-file=$log_file \ --progress \ --links \ --checksum \ --bwlimit="192M" \ --delete-during \ --delete \ --timeout="60" \ --compress \ --no-o \ --no-g \ --whole-file \ --preallocate \ --atimes \ --update \ --partial And here is the rsync check command I am running with the flags:
rsync -vvv \ # -v: Basic information, like the files being transferred. # -vv: More details, such as when files are being skipped. # -vvv: Even more detailed, including internal operations and potentially overwhelming. -z \ # Compress data during transfer -h \ # Human-readable -a \ # Archive mode -A \ # Preserve ACLs -H \ # Preserve hard links -S \ # Handle sparse files efficiently -X \ # Preserve extended attributes "$src" \ "$dest" \ --log-file=$log_file --progress \ --links \ --checksum \ --bwlimit="192M" \ --compress --no-o \ --no-g \ --contimeout="60" \ --ignore-errors \ --stats \ --max-delete=0 \ --whole-file \ --preallocate \ --atimes \ --update Rsync version:
rsync --version rsync version 3.2.7 protocol version 31 Copyright (C) 1996-2022 by Andrew Tridgell, Wayne Davison, and others. Web site: https://rsync.samba.org/ Capabilities: 64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints, socketpairs, symlinks, symtimes, hardlinks, hardlink-specials, hardlink-symlinks, IPv6, atimes, batchfiles, inplace, append, ACLs, xattrs, optional secluded-args, iconv, prealloc, stop-at, no crtimes Optimizations: SIMD-roll, no asm-roll, openssl-crypto, no asm-MD5 Checksum list: xxh128 xxh3 xxh64 (xxhash) md5 md4 sha1 none Compress list: zstd lz4 zlibx zlib none Daemon auth list: sha512 sha256 sha1 md5 md4 rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the GNU General Public Licence for details. Ubuntu Server version:
ubuntu 24.04 (64 bit) LTS
$SRCas a filesystem, and rsync's--compressflag does not affect the data read from filesystems (or written to them), it only affects the data transmitted from the sending rsync process to the receiving rsync process.yes | pv -S -s "32G" > /target/tmpfilename.32Ghere is twice the RAM size of the machine to make sure we're not just writing to in-RAM write buffers.gzipinvoked with -z