5

When I bought an 2017 MBP I was under the impression (from Apple and others) that USB-C was the superfast way to transfer data. It has not worked out that way and I am wondering if I misunderstood something.

I am downloading 50gb from the MBP to an external drive and it is showing a time of over 5+ hours left. Isn't this supposed to happen much more quickly???

"USB 3.1 Type-C cables offer a transfer rate of 10Gbps, which is double the transfer speed of USB 3.0 (5 Gbps)" is what one tech site states. Can someone explain what i am missing or doing wrong?

enter image description here

8

The bus speed you quote is a theoretical maximum and not that the bus somehow speeds up any and all storage connected to it.

An analogy would be quoting the vehicle capacity of a 10 lane highway that’s perfectly packed with cars, all of which drive themselves bumper to bumper in perfect coordination. With good buffering, ideal behavior, no hiccups you can hit the benchmark “specs” on the nose every time.

In practice, there are lane changes, no cars waiting to enter the traffic pattern, or just everyone driving in the left lane. (Let alone spiking the breaks or cutting others off ...)

Back to computers, my advice is to open the Activity Monitor app and look at the Disk tab. Specifically the IOPS and data rates are different constraints.

enter image description here

IO is like getting all the vehicles on and off the highway so you’ll have low transfer rates when there are lots of small delays and metadata being read from slow storage. That's on the left side and in the chart when IO is selected.

Your graph shows an IO constrained transfer, the system is spending more time locating the next group of bits to transfer, it can’t likely fill up the max transfer of the drive. Most consumer drives can absorb 20 MBps to 60 MBps and most Macs can put out hundreds and NVMe ssd on recent Macs thousands of MBps and IOps.

Bandwidth is another constraint similar to the on ramps and off ramps - your sending and receiving device might be the bottleneck. That's the data read/sec on the right and shown above.

Without any specific data measurements, hopefully the high level description of what to look for and how to think of the bus speed helps you sort out if you brought too fast an expectation to devices that can’t deliver or if everything is capable of fast transfers and you have a configuration / software / hardware issue in hand to diagnose and optimize.

My hunch is the speed estimate is conservative, Finder is single threading the transfer and your bottleneck is a consumer grade external drive (HDD or slower flash storage) and you'd be able to get 60% of the max with a more efficient transfer and a fast Thunderbolt 3 type storage device attached: https://www.virtuallyghetto.com/2019/06/thunderbolt-3-enclosures-with-single-dual-quad-m-2-nvme-ssds-for-esxi.html

  • @Sizzle when you use the edit control, there is a ? For help in using the editing controls. help center has a lot of words and more details if the inline help is too terse. – bmike Jul 6 at 16:13
  • 5
    Many hundreds of thousands, or even millions, of files moved to the external disk using a Finder drag will add a lot of overhead to the process. If you're dealing with a humongous number of files, I've found that using the mv Terminal command to bypass the Finder runs very fast indeed. – IconDaemon Jul 6 at 17:17
  • 2
    When copying many files I would use rsync which will be faster then Finder and also if you have to stop part way through when it is rerun it does not copy over files that have already been done. – user151019 Jul 7 at 0:23
  • 1
    "Most consumer drives can absorb 20 MBps to 60 MBps"... sorry, am I misunderstanding this, or this this from another geological era? I saw consumer hard disks back in ~2005 achieve >20 MBps... I feel like the bare minimum you can find on any hard disk these days should be 80 MB/s? – Mehrdad Jul 7 at 7:49
  • 1
    @Mehrdad: yeah, modern 3.5" drives have sequential read/write speeds of ~200MB/s in the outer tracks, start of the drive with higher linear velocity under the heads. (e.g. a recent 6TB Seagate 5400RPM drive is ~185MB/s, an older Toshiba 7200RPM drive is more like 210MB/s). At the end of the drive (inner tracks), speeds are ~half that, like down to ~90 or 100MB/s. But that's pure sequential with no seeks for filesystem metadata or separate files. Possibly this answer is talking about average real use cases for some typical file size of maybe a couple MB (like photos)? – Peter Cordes Jul 7 at 8:41
3

It's your data

That variability of data rate suggests a copy of many smallish files - akin to backing up the OS files, for instance, where a typical file is as small as 30 bytes and often in the 5-100kb range.

Every file has some "write" overhead that must be done per file, regardless of the file size, such as writing the directories. And this isn't a big block transfer; it involves the physical drive hunting all over the disk, which means you're doing a lot of waiting for head traverse and for the right sector to come around.

Once you get into big files, like your videos, you will be doing steady block transfers and should start seeing much more impressive rates, certainly at least 30MB/sec. Still a far cry from USB's nameplate speed, but the limiting factor is still this physical hard drive, and a basic consumer-tier one at that.

Once, I tried to unzip a ZIP file with about 5 million rather small files on it. At the rate it was going, it was going to take over a day. So, I created a RAMdisk. It unzipped in 5 minutes. Seek time matters!

1

There are many possible answers, but before I offer them - Have you actually tried to go on and start the copying process? The initial estimate is - well - just an estimate, and after the first few megabytes, it may jump down to something more appealing.

Now - the time it takes to copy 50GB from one drive to another, is not only bound by the hardware data-transfer rate of the bus (in your case, 10GBPS or little over 1 Gigabyte a second).

It strongly depends on the read speed of your source drive and the write speed of your target drive - if your external drive is a mechanical HDD - it won't be able to sustain writing data at the theoretical USB-C 3.1 rate.

Then - it also depend heavily on the data you try to copy. Is is just one large file? maybe a directory hierarchy containing millions of small files? something in between?

When copying complicated file-system subsets (directory hierarchies) from one drive to another, For one, scanning the source directory and its descendents is a process that takes time. But also creating a complicated directory structure on the target drive takes lots of time too - regardless of the size of their contents.

In your case, I believe it is just your external hard drive. It may be a slower HDD, or it won't support the faster connection variant.

Last, but not least - faulty or poor-quality cables sometimes cause very-slow file transfers - and in some cases, these cables can create corrupt copies of the original data on the target. So check with another cable too.

Last -Even with a slow HDD connected via old 480MBPS USB cable, I was able to copy a full hard-drive (512GB) in just under 45 minutes - so the whole thing can simply be a hardware/cabling issue.

You must log in to answer this question.

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