Sunday, December 8, 2019

Mac OS network transfer speed still broken in Sierra and still in Mojave – workaround provided

Problem / Outcome Summary

  • MAC OS network transfer speed is still broken in OS Sierra and Mojave (Workaround Provided at the bottom).  What do we know so far?

Why might I want to read this?

  • Because you’re frustrated that Windows is nearly twice as fast than Mac OS using any protocol
  • Because you want to prove me wrong and show me what I can do to fix this problem in the comments below

What is the problem?

Mac OS (including up to Sierra) still appears to be failing miserably when it comes to network transfer speed.  It is so bad that it is nearly half the speed of windows, which in turn means Mac OS takes nearly twice as long to copy files than windows.  This isn’t fun, when you may have terrabytes of files to copy, translating into many extra hours of unnecessary copying time.

There is a lot of information out on the internet, and apple is typically quiet on the subject, one of the most frustrating aspects of Apple is that they basically never admit anything.

Also, while there are some small fixes out there, there is nothing that discusses the topic comprehensively.  So I decided to have a look and try to figure out exactly where we stand.

First up, the test bed

For these tests, we used the following hardware.

  • QNAP 669-L with 4.3.2 (beta) loaded
  • Mac Mini (Late 2012) (I7 2.8GHz, 16GB RAM), Samsung 850EVO SSD
  • GS116Ev2 – 16-Port Gigabit ProSAFE Plus Switch
  • 4x Seagate ST4000VN000-1H4168 4TB NAS drives (RAID-5)
  • 2x Hitachi HDS723020BLA642 2TB Enterprise drives (RAID-0)
  • Mac OS Sierra 10.12.2
  • Windows 10
  • CAT 5E Cable

Next up, the problem

So what actual speeds do we get in the ‘out of the box’ experience?

Unfortunately the out of the box experience for Mac OS is not good.  Basically, Mac OS tops out at about 20MB/s vs Windows 10 consistently transfers a reliable and blazing fast 110MB/s.  It goes without saying that this is quite a gap in out of the box performance.  And this is not very nice considering how much it costs to get a Mac these days.

Right, so what should we test?

For this exercise I thought we should isolate where the problem is by testing server side tweaks, how it realtes on Windows vs Mac OS, try different network protocols and isolate hardware.

Also, to eliminate differing hardware, BOOTCAMP was used (that is, Windows was installed on the same MAC hardware, dual boot).

The tests (and their results) were as follows:

Mac OS Sierra, copy from RAID-0 to local SSD using SAMBA (Jumbo Frames On) and changing NAS SMB settings as below:
  • SMB v2.0 no async 20MB/s
  • SMB v3.0 no async 17MB/s
  • SMB v2.0 async i/o 22MB/s
  • SMB v3.0 async i/o ?
Windows 10 (Bootcamp), copy from RAID-0 to local SSD disk using native samba, jumbo frames on and changing NAS SMB settings as below:
  • SMB 2.0 – 110 MB/s async
  • SMB 2.1 – 110 MB/s async
  • SMB 3.0 – 110 MB/s async
Mac OS, copy from RAID-0 to local SSD disk using native AFP
  • AFP – 50MB/s (no jumbo frames)
  • AFP – 55MB/s (jumbo frames)
Mac OS, copy from RAID-0 to local SSD disk using NFS
  • NFS 60MB/s with jumbo frames
Other tweaks

These results don’t look good for the MAC.  Around the internet, it was mentioned that if you disable the overhead of the client signing on the MAC, you can get a large speed increase.  To do this you simply place a file in the /etc directory as below.  This file does not exist and needs to be created.

File name: nsmb.conf
[default]
signing_required=no

The result was:

  • SMB 3.0 48 MB/s async

So this was a huge improvement for SMB, but still trailing behind NFS, AFP and most noteably windows 10’s impressive 110MB/s

So what does the above tell us?

  1. The issue above is 100% in software.  This is clear because Windows 10, installed on the very same Mac Mini hardware achieves a massive 110MB/s.
  2. This issue is 99% likely caused not just in software, but specifically in the Mac OS software
  3. The server side (NAS) tweaks help, but not by much
  4. The client side tweaks help the most, the best by far being to disable client signing.

What next?  What should we do about it?

Currently, there appears to be no fix, nor any recognition that an issue exists.  Since this is almost definitely in the implementation of apples software or associated kernel modules / drivers the best thing would be to let apple know.  If you are enrolled in a beta program with Apple, please log a bug for each version of the OS that this still happens in – that’s what I will be doing.  Otherwise, you’re stuck with the apple communites here.

Recommendation

If you’re planning on doing any large copies in Mac OS, I’d recommend doing them in windows instead.  It’s just faster.  If you’ve got Linux skills, you could try that too of course.

That’s what I’ll be doing.

As always, we welcome your insights and opinions in the comments section below.  And I’d be particularly pleased to be proven wrong, (given I’d like this sorted out for my Mac at home), but provided that this can be replicated in our test setup, or isolated to be a different issue I haven’t thought of.

Happy new year everyone.

Workaround (Jan 2019)

I accidentally stumbled upon a workaround for me when copying large amounts of data, which is simply to use NFS but the trick is to mount it via the command line.  So while not perfect in the sense of an everyday driver (I certainly don’t want to do this manually each time), it does work if you need to copy a lot of data as a one time thing.  Surprisingly I’m getting sustained speeds of 110MB/s which is the fastest I have ever seen on any of my Macs while running Mac OS.  Note that this is in Mac OS Mojave version 10.14.1.

Hope this helps someone out there!

Marshalleq

Popular Articles

Raspberry Pi 3

Raspberry Pi Disk Images – Definitive List

This page attempts to list all the Raspberry Pi disk images known to currently exist from around the web, providing direct links to download...
Raspberry Pi Audio Hardware

Raspberry Pi audio HAT’s (Hardware Attached on Top) – Definitive List

Summary Back in July 2014, Raspberry Pi announced the then new, Raspberry Pi 2 followed soon after by the announcement of HaTs (Hardware Attached on...
How to set Plex permissions on Linux / NAS devices

How to set Plex permissions on linux or NAS devices

Problem / Outcome SummaryThis how to guide will show you how to properly set up Linux file permissions for Plex Media Server Please...
How to set up Plex on Raspberry Pi 2 or Raspberry Pi 3

How to Install Official Plex Media Player on Raspberry Pi 2 / Pi 3

This ‘How To’ article will show you step by step how to set up and install the official Plex Media Player on a...
Plex Media Server

How to install Plex Media Server on Ubuntu Server Headless

This howto will enable you to install the Plex Media Server on Ubuntu Server For how to install Plex Media Server on another...

Related Stories

8 COMMENTS

  1. Hey Gary! I have actually come across many complaints from others about Wifi Speed, while searching for information on this particular issue. In almost all cases my search for ethernet copying issues found only complaints about copying with WiFi. But these tended to be about people whom didn’t appreciate the limitations of WiFi’s maximum transfer rate and how quickly this reduces with distance, interferance and physical objects. Perhaps I should do some testing?

  2. Would be interesting to try Linux. Perhaps a red hat variant like centos, fedora, etc.

    You did a fantastic testing .

  3. Thanks Robert, yes it would be interesting – just from the point of seeing if there is a *nix system that CAN copy at a reasonable speed. Is that the angle you’re coming from? I’ve never put Linux on my Mac natively before, only in a virtual machine, I assume it’s not too hard.

  4. Yes, when I can lay my hands on a beta I will do. I should check also that none of the more recent versions of Sierra have resolved this, I recall something about a newer version of SMB being included somewhere. So you have the issue too?

  5. Awesome. Seems like I had better do a retest! What was the endpoint you were connected to? Another Mac I assume, or some AFP implementation on a NAS or Linux? Thanks.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Stay on op - Ge the daily news in your inbox