Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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 need to transfer more than one big file on USB or SD device, let's say 4 files of 1 GB each.

I noticed that on USB, the concurrent transfer of multiple files is way slower than queuing up the copy; it's a simple test I made by myself:

Test 1 (queue):

$ cp file1 /mnt/usb;cp file2 /mnt/usb;cp file3 /mnt/usb;cp fil41 /mnt/usb;

12 minutes.

Test 2 (concurrent, from 4 different shells)

$ cp fileN /mnt/usb

40 minutes.

This problem doesn't happen on MacOS. If I perform the same tests, the total copy time is pretty much the same.

Why this happens on Linux? Why does performance degrade so much in concurrent writing? Is there any other way to work around this problem (besides copying files in a queue)? I tried with both cp and rsync.

share|improve this question

migrated from Apr 18 '13 at 13:42

This question came from our site for professional and enthusiast programmers.

This is not a programming question. – unwind Apr 18 '13 at 11:09
Well, actually I made a simplification. The case I described happens in a c++ program, so I tested with cp and rsync to understand if it was my fault or it something that relies on OS. Thus, I changed the original question formulation to try and get more answers – lorenzo.marcon Apr 18 '13 at 12:22
if still considered off topic, there's no problem, it can be migrated to other sections of stackexchange. (although there are A LOT of similar -non programming- question here, even on the related column on the right hand side of this very page) – lorenzo.marcon Apr 18 '13 at 12:25

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.