20

Overview

I have a 1 Gbps connection via a Cat 6 Ethernet cable to my MacBook Pro (16-inch, 2019). I am on macOS Big Sur 11.6 on the Intel Core i9 if that helps.

The Ethernet cables connect to the Thunderbolt port via a dock supporting a 1 Gbps networking and my router, switch and modem all support 1 Gbps speeds.

Getting speeds of 1 Gbps

I have tried this with two other docks/Ethernet to Thunderbolt ports and can reproduce the issue.

The issue

Whenever I restart the machine or I freshly connect the dock (or even just the CAT cable to the dock), I get the specified 1 Gbps speeds on my machine.

However, after a few minutes of usage (this varies between 5 - 30 minutes), the speeds drop to 118 Mbps / 118 Mbps.

If I disconnect and reconnect the dock or the network cable, it sometimes fixes the issue and sometimes it doesn't and my speed is limited to 118 Mbps (exact).

The My NetworkAdvanced setting on my Ethernet looks like this:

Network Hardware Settings

And it shows T1000 with duplex. I have tried all suggestions on various Apple forums like this one and they haven't worked for me.

It is like the Mac suddenly decides that it cannot support 1 Gbps and switches to 118 Mbps (why exact 118 Mbps though?).

Speedtest showing speeds of 118 Mbps

What setting can I check/change to fix this issue?

-- Update 01 --

As per some suggestions, I ran an iperf3 test between two MBPs on the local network and got about 940 Mbps.

However, I also got the Internet speedtest hitting 900 Mbps when I ran that next. I am not ruling out some local network issue. I'll rerun iPerf once I see my Internet speed drop to rule out any local network issues.

iPerf3 results

Checking for ISP caps via a secondary device over Wi-Fi

When I get low speeds on my Ethernet, switching to Wi-Fi or testing on my phone (over Wi-Fi), gives me substantially higher speeds - around 200 - 300 Mbps. So I doubt it is an ISP cap (possible, but unlikely).

-- Update 02 (and solution) --

It was not the Macbook but my router doing some QoS :|

After encountering iPerf3 showing 940 Mbps and my Speedtest reporting 118 Mbps, I started dismantling my network and connecting my Macbook at various levels right until I connected it directly to the modem. (Modem was 1 Gbps and router was 118 Mbps).

(I had also procured a Windows machine and connected it to the LAN which was also capped at 118 Mbps. That proved that it was not the Mac but something to do locally with my network.)

Turned out that my router (I have a TP-Link Deco) has a QoS setting which is set at 120 Mbps and when a certain number of devices connect / there is enough network activity, it restricts speeds to 120 Mbps. (Hence the 118 Mbps on speed tests).

The reason I was thrown off initially was because my phone was showing higher speeds when my Macbook was being throttled.

This turned out to be due to the fact that my phone was registered as a higher-priority device and the router skipped the QoS on it and allowed its full bandwidth.

TP Link Deco QoS Setting

saurabhj
  • 489
  • 1
    Does someone have to guess where the other end of that SpeedTest is? How many hops are between you and it? What service rate are you paying for from your ISP? – Marc Wilson Oct 17 '21 at 02:07
  • 1
    @MarcWilson for the purpose of this question, I have run the same tests with the same speed test server at the other end. If you see the first screenshot I posted, you can see that I am able to get a 905 Mbps -- while the second screenshot shows when the speeds drop to 118 Mbps. All parameters remaining the same. The reason I have posted this on the Apple SE and not a networking SE is that I believe the issue is with the MBP / macOS and not with the network. The reason for not showing more data is because I don't want to distract from the main issue. Thanks. – saurabhj Oct 17 '21 at 02:13
  • 1
    Do you have another GigE transceiver that you can compare with? – pion Oct 17 '21 at 06:36
  • 11
    My bet is your ISP is capping your speeds. The only way to be sure is to test bulk data transfers between other computers in the same network. – Dai Oct 17 '21 at 10:31
  • 2
    Might want to speed-test with another device, e.g. a phone or laptop, even if it's over Wi-Fi, to see if it has the same cap. – Nat Oct 17 '21 at 12:48
  • 1
    Thanks @Nat That was a helpful suggestion. I did test out speeds on my iPhone via Wifi on the same network and they were considerably higher (not 1 Gbps because of Wifi -- but at least around 200 - 300 Mbps). – saurabhj Oct 17 '21 at 12:56
  • 4
    If you leave it for half an hour to cool down, does it start working at the higher speed again? – Andrew Morton Oct 17 '21 at 15:25
  • 2
    Note that if the speed test comes back at 118 Mbps, then whatever is limiting the speed is limiting it to something higher than 100 Mbps - perhaps 128 Mbps. The reason one 1 Gbps registers around 900 Mbps is because of overhead. The overhead exists at lower speeds. – Todd Wilcox Oct 17 '21 at 15:57
  • 1
    What dock do you have? If it has a Realtek ethernet chipset, the built-in macOS drivers are incredibly CPU-heavy. Realtek's driver solves this problem. – hacker1024 Oct 17 '21 at 19:35
  • 2
    Would it be possible that one of the two devices decide the connection is not good enough and renegotiates from 1000 to 100? The media field in "ifconfig" may show something. – Thorbjørn Ravn Andersen Oct 17 '21 at 20:16
  • 2
    Can you log into your switch/router and see any per-port stats? Things like Collisions, retransmits, and "current port speed" could be useful info here. – Criggie Oct 18 '21 at 10:06
  • Not sure why your ISP cap would be different across different devices, but getting high scores in internet speed tests that don't represent your network performance outside of those speed tests is usually a sign that your ISP is throttling you. I'm no expert but sometimes replacing the modem they give you fixes everything. The ones they give you for free are usually prone to throttling due to overheating, even when not being capped on their end. – BooleanCheese Oct 18 '21 at 14:28
  • Is there anything changing between the tests? Like connecting or disconnecting an external monitor, switching GPU, launching or quitting an app, starting or stopping some intensive process, starting or stopping downloads (on the same or another device)? I agree that the ISP throttling is the most likely cause, but there could be others. – jcaron Oct 18 '21 at 16:59
  • 1
    Is your Dell dock on the latest firmware? If not I would try to update it. (You will need a Windows system, for that. Dell doesn't do MacOS utilities.) I would also check for MacOS specific drivers. Dell doesn't have them (again "Universal" in Dell Logic means "All Windows PCs") but you can check for the various chips inside the dock and get manufacturer drivers directly. Especially for the LAN chip that could make a huge difference. – Tonny Oct 18 '21 at 18:04
  • 1
    Try to rule out your hub that supports 1Gb/s. Does your hub run hot? – Martin Bennett Oct 18 '21 at 20:22
  • 1
    I was able to troubleshoot the issue and figure out what it was. Cabling and docks are thankfully fine. It was my router doing a soft limit due to having some QoS setting active which I was not aware of. (I have shared details in an update to the original post). Thank you to everyone for patiently suggesting things I should check. I feel a little silly -- but glad to have learnt a bunch of things. Thanks again! – saurabhj Oct 20 '21 at 04:41
  • 1
    Great additional explanations in your question! :) – Lethargos Oct 20 '21 at 07:33

4 Answers4

22

MacOS does not come with such a restriction. There's no built-in feature that limits transfer speeds to 118 Mpbs (or similar value) after while.

You can build such a feature yourself using the included pf packet filter, but I assume you have not done so.

As your network settings show that the speed negotiated between the ethernet port on the dock/Mac and the switch shows as 1000Base-T then you do have a 1 Gbps link.

You're using an unreliable way of determining speeds by using SpeedTest. I would not recommend that for testing speeds on your local network. You could simply be throttled at the server or ISP - i.e. after you have spent an amount of bandwidth over a small period over time, the server or ISP put in place throttling to ensure that you do not overuse their bandwidth.

One of the best tools for local network speed testing is iPerf3. I would recommend installing that, and then measure the network speed between your Mac and another device on your local network. Then you can isolate the cause of the throttling to be outside your local network.

jksoegaard
  • 77,783
  • 1
    No, ofcourse not - but this question wasn't about how to do bandwidth shaping. Rather I just wanted to make sure that the poster of the question hasn't enabled bandwidth shaping - which we can probably say for sure that he didn't. – jksoegaard Oct 17 '21 at 11:44
  • 2
    Thanks @jksoegaard for the great suggestion. I ran iperf3 between 2 MBPs and was able to get 940 Mbps (screenshot updated in the question). However, when I ran the speedtest, I got a similar result (900 Mbps) -- but I am not ruling out a local network issue. I'll run iperf3 again again when the speedtest results drops back to 118 Mbps and post an update which will be more conclusive. Thanks for the suggestion though! – saurabhj Oct 17 '21 at 13:25
  • Accepting this as the answer as the issue was to do with my local connection and not the macOS per se. I have added an explanation to what the issue was in my original post. Thank you to the pointer to iPerf3 -- that was helpful and instrumental in me being able to get to the bottom of this. – saurabhj Oct 20 '21 at 04:34
14

Check your network cable

If it's not a software based issue, it's likely hardware. I'd replace the network cable with a known good one. Even cables that look OK can have issues.

  • 2
    Upvoting this because this issue affected me once - while Cat6 cables are generally very well made, the OP might have some invisible damage within the cable causing crosstalk. – Dai Oct 18 '21 at 00:56
  • +1, I would do the same if I was in same situation. Either way, OP's network seems to be only 1GbE, so I assume he's using Cat5e or Cat6, so it might be a good idea to replace the entire cable with Cat6a (which can support 10GbE in the future). – Skye-AT Oct 18 '21 at 07:46
  • 1
    Definitively worthwhile checking the cables. I had a similar experience: https://www.lbreddemann.org/what-a-10x-network-speed-difference-looks-like/ – Lars Br. Oct 18 '21 at 22:29
1

Cables and dongles are always an easy ground zero to address. Try those and unless you have dedicated internet from your ISP, data caps are real. Look into the contract you have with your provider.

1

Third-party macOS USB-C Ethernet adapters are apparently notorious for requiring excess CPU power on the host, due to driver issues and the lack of offloading support. Even if you've tried multiple Ethernet docks, it's quite possible that they're all using the same chipset and driver so perhaps changing docks doesn't tell you anything.

Have you tried running Activity Monitor while running the transfer to see if the CPU is spiking at some point, and if so, does that correlate with the transfer speed? Or are you running other CPU-intensive tasks on the machine at the same time?

I could even imagine a cascade of issues: for example, the CPU usage could cause thermal throttling to kick in and further reduce the amount of bandwidth available for the computations that cannot be offloaded to the external chipset.

While on that subject, are you plugging in your hub on the left side or the right side?

In either case, as other answers have noted, it's best to test this locally. To rule out any problems with switches or routers, first find another computer with a GbE port on your network, plug a cable directly between the two (most GbE adapters supports auto-crossover so you can probably use a regular cable), and measure the transfer speed directly. (You could, for example, mount a directory and dump a file with "dd".)

Scott Dudley
  • 1,434