If you do
ps -ef | grep 'rsync' | grep -v 'grep'
you should see something like this:
root 7520 7514 12 20:50 pts/0 00:05:46 rsync --checksum --one-file-system --recursive --outbuf=Line --links --perms --times --group --owner --devices --specials --verbose --out-format=%t|%i|%M|%b|%f| --delete-delay --whole-file --human-readable --protect-args --ignore-errors --msgs2stderr ./ /DB001_F7/ root 7514 7512 0 20:50 pts/0 00:00:25 rsync --checksum --one-file-system --recursive --outbuf=Line --links --perms --times --group --owner --devices --specials --verbose --out-format=%t|%i|%M|%b|%f| --delete-delay --whole-file --human-readable --protect-args --ignore-errors --msgs2stderr ./ /DB001_F7/ root 7512 1 17 20:50 pts/0 00:08:27 rsync --checksum --one-file-system --recursive --outbuf=Line --links --perms --times --group --owner --devices --specials --verbose --out-format=%t|%i|%M|%b|%f| --delete-delay --whole-file --human-readable --protect-args --ignore-errors --msgs2stderr ./ /DB001_F7/"
In other words, rsync had 3 processes running in parallel for file copying, maybe more if you have more than 4 CPUs (what I have in my core).
As Kefka said, compression option maybe forced the serialization of backup data into a single data stream, and that too would slow things down, on top of the CPU utilization for the compression.
For time consumption, there are a few modes that change the behaviour. Specifically, if you are using --checksum for every backup, backup times take up to 2.5 hours for a 250 GB partition, vs 15-20 minutes on what I call updates (cumulative delta from last full backup). Doing a full image copy (empty destination directory; copy everything) without --checksum would take about 1-1.5 hours, just because of the sheer volume of data.
My own backup device is via usb as well, a WD 4TB MyBook. I had to tweak the grub because of my physical configuration. Your own hardware configuration may need tweeking as well if the USB is slower than expected. This is what I have:
# quirk specification is to suppress UAS for external USB3 drive operating on USB2 channel. GRUB_CMDLINE_LINUX_DEFAULT="quiet splash scsi_mod.use_blk_mq=1 usb-storage.quirks=1058:25ee:u ipv6.disable=1"
If you are unsure of the performance hit using your USB drive, you can try, firstly a tar command of an ISO image from internal hard disk to another location on your internal hard disk, then tar that same ISO to a location on your USB drive to see if there is much difference in speed. Use the date command before and after to get a sense of the time usage for both scenarios. Then try doing rsync for that same ISO image, using your normal options, and see if there is much difference in time for completing that transfer to your USB.
I would try that rsync with the single ISO for a few different option for your rsync until you find what works best for you, balancing integrity of data at destination, with job duration for backups with rsync. Only once that best combination is found should you move on to directory, disk or system backups, at which point you have assurance that your transfer were completed as expected.
rsyncprocesses, as long as you ensure they don't try to copy overlapping sets of files. However, they would still use the same singular data bus, so speedup would definitely not be linear.rsyncwithcp -R.