Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm running rsync to sync a directory onto my external USB HDD. It's about 150 gigs of data. 50000+ files I would guess.

It's running it's first sync at the moment, but its copying files at a rate of only 1-5 MB/s. That seems incredibly slow for a USB 2.0 enclosure. There are no other transfers happening on the drive either.

Here are the options I used:

rsync -avz --progress /mysourcefolder /mytargetfolder

I'm running Ubuntu Server 9.10.

share|improve this question
are you sure you're getting a USB2 connection? does a (non-rsync) copy or other write operation run at normal speeds? if not, have you tried a copy/other write op with another USB port/cable? – quack quixote Feb 17 '10 at 0:14
See also… - there people also propose using two piped tar commands or cpio. – Blaisorblade Feb 23 '13 at 17:32
up vote 21 down vote accepted

For the first sync just use

cp -a  /mysourcefolder /mytargetfolder

rsync only adds overhead when the destination is empty.

also.. the -z option is probably killing your performance, you shouldn't be using it if you are not transfering data over a slow link.

share|improve this answer
rsync is so called because it's for remote synchronization and is not really appropriate for a locally-connected volume for this very reason. – msanford Jun 27 '10 at 22:30
It's supposed to be usable also for local transfers, and it's much more flexible. It's only possibly overkill for the first sync. – Blaisorblade Feb 23 '13 at 17:31
rsync is also a one way sync. Very good for backing up to a server or from a server. However, if you want local TWO-Way sync to a removable drive, you may want to check out csync not to be confused with csync2 which is a completely different project. – Jesse the Wind Wanderer Dec 31 '14 at 13:32

If you're using rsync with a fast network or disk to disk in the same machine,

not using compression -z

and using --inplace

speeds it up to the performance of the harddrives or network

compression uses lots of CPU

not using inplace makes the harddrive thrash alot (it uses a temp file before creating the final)

compression & not using inplace is better for doing it over the internet (slow network)

NEW: Be aware of the destination... if there is NTFS "compression" enabled... this severely slows down large files (I'd say 200MB+) rsync almost seems stalled, it's caused by this.

share|improve this answer
NTFS compression is slowwww on big files – Scott Kramer Jun 3 at 3:51

Use the -W option. This disables delta/diff comparisons. When the file time/sizes differ, rsync copies the whole file.

Also remove the -z option. This is only useful for compressing network traffic.

Now rsync should be as fast as cp.

share|improve this answer
Minor note: -z is only useful for low speed network traffic. If your network is fast enough, it'll slow things down, since you'll be limited by CPU. – Hugo Jul 8 '13 at 2:28
These tips vastly sped up the transfer of my files between two NAS devices, thanks! – djhworld Sep 22 '13 at 13:30

You don't say what size distribution your files have. If there are many small files then this will reduce overall transfer rate by increasing head movement latency in both the source and destination drives as the tool opens new files and the OS keeps directory entries and other metadata (such as the filesystem's journal if you are using meta-data journaling like ext3/ext4 and NTFS do by default) up to date during the transfer. A file copy proces will only "get into its stride" for larger objects, when a simple bulk transfer is happening.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .