Archive. This is an archive of the Apple Support Community. Discussions are being restored and soon you will be able to read and post here again.

Mac mini Ethernet speed limited to ~90 Mbps despite 1000baseT

Mac mini Ethernet shows 1000baseT but maxes out at ~90 Mbps, even in Safe Mode and with a USB-C adapter

  • Mac mini M5 pro chip, macOS 27.0.1 (26A434)
  • UniFi network [gateway and switch models]; the Mac is on a VLAN (192.168.50.x)
  • Wired through a wall jack to a UniFi switch


The problem


The link negotiates gigabit, but real throughput is stuck around 75–95 Mbps in both directions:

  • ifconfig en0 shows media: ... (1000baseT <full-duplex>)
  • networkQuality -v -I en0: about 79 Mbps down and 74 Mbps up. Idle latency is about 41 ms, and loaded latency jumps to about 500 ms.
  • iperf3 to the Mac holds a flat 90–94 Mbps with zero retransmits, from both a Wi-Fi client and a wired client on another VLAN.


What I've ruled out

  • Cables and wiring: tried several Cat6 cables. Another device on the same wall jack gets full 1 Gbps.
  • The built-in port: a USB-C Ethernet adapter gives the same ~90 Mbps.
  • Link errors: netstat -I en0 shows 0 input errors, 0 output errors, and 0 collisions over about 1.3M packets.
  • Wi-Fi: confirmed traffic goes over en0 (route get default, and networkQuality -I en0).
  • Speed and EEE settings: was manually set to 2500Base-T; tried Automatic, and tried manual 1000baseT full-duplex with Energy Efficient Ethernet off.
  • Third-party software: same speeds in Safe Mode.
  • UniFi: disabled IDS/IPS and Traffic Identification; no per-client or per-VLAN speed limits are set.



The flat ~94 Mbps with no retransmits and big loaded latency looks like a shaper or a hidden 100 Mbps bottleneck, and it follows the Mac across two different Ethernet interfaces, even in Safe Mode. Could this be a macOS 27 bug? Has anyone seen something similar?

9 replies

This reeks of a cable fault, but…


What happens with an unmanaged gigabit switch temporarily swapped into the place of this Ubiquiti switch? This will test without the potential involvement of anything at the switch; without any Unifi QoS / traffic shaping / bandwidth controls, and without any VLAN involvement.


There are other potential wrinkles, such as UDMP switch ports being limited to a gigabit in aggregate. But soecific gateway and switch model info were omitted.


Any VPNs installed or configured anywhere here, on the Mac or within Unifi?


The 41 ms and particularly 500 ms latencies… aren't great.


You will absolutely want to confirm any in-wall or patch panel or other cabling involved here, as I’ve met more than a few of those cable runs that degraded, or that failed. This includes getting limited to something below a gigabit due to Cat 5, or bad wiring, or critter-assisted cabling downgrade from Cat 6A/6/5E to Cat 5, or failures due to moisture and corrosion. Yes, the Klein tools are quite helpful for continuity checks, here.


Network Utility replacement for the GUI enjoyers:

UniFi network [gateway and switch models]; the Mac is on a VLAN (192.168.50.x)

That’s a subnet most probably, and not a VLAN. VLANs have small numbers assigned, and not IPv4 addresses.



If not already done, try the following. These are the first steps to diagnose the location of the problem.


A. Connect some other working device to the RJ45 port in the wall. Make sure your cable is a fully functional CAT6 cable that works elsewhere. Does it operate at full speed? If not, the problem could be the ethernet cable, the wall jack or in-wall wiring, and/or the specific port on the switch. Retest by connecting directly to the port on the switch. If it still doesn't work, try a different port on the switch. This will help determine if the problem is cabling or the switch.


B. Test the mini in a simple configuration

  1. Remove the USB-C ethernet device from the mini. Actually, for now, disconnect all external peripherals except for your display, kbd & mouse.
  2. Turn off WiFi on the mini.
  3. In Network > Set Service Order make sure Ethernet is at the top of the list (hence, has top priority)
  4. Fully shut down the mini. Wait a few minutes. Restart the mini.
  5. Connect your ethernet cable to the mini & your RJ45 port on the wall. BTW, make sure the cable is at least CAT6 and that it works at full speed on a different device.


See if the speed improves that way.


<< a hidden 100 Mbps bottleneck. >>


and that bottleneck most likely is...


... a bad cable.


Ethernet interface uses a baseband signal, one bit per signaling interval, for all speeds up to and including 100 M bits/sec. it uses only TWO pairs of wires -- the others are ignored.


Above that speed, it changes to a modulated signal, sending multiple bits per signaling interval, that requires all four pairs of wires, and also precludes the use of things like Power-over-Ethernet on the same cable segments.


Be sure to check each End of each cable you are using for all four pairs of wires, and no broken wires or wires that did not quite get captured in the connector.



this is EIA/TIA 568-B wiring.

568A is very similar, but moves the green pair to positions 1 and 2 and splits the orange pair around the central blue pair instead.

Also A at one end and B at the other end is a standard cross-over cable, which is perfectly allowable and modern devices adjust automatically.



Actual Speed:

The good way to check the actual connection speed USED to be Network Utility, But in Catalina and later, Apple has deprecated Network Utility and now you have to use a Terminal command to see your actual connection speed. First, you need to know what en number the link is. then you use a command like this one, substituting the actual en number.


my main Ethernet connection uses BSD name en2 (as shown in) :

Option- menu > about this Mac > (system Information) > network:


Aquantia AQC107-B0:


Name: ethernet

Type: Ethernet Controller

Bus: PCI

Slot: Slot-3

Vendor ID: 0x1d6a

Device ID: 0x87b1

Subsystem Vendor ID: 0x1d6a

Subsystem ID: 0x0001

Revision ID: 0x0002

Link Width: x4

BSD name: en2

Kext name: AppleEthernetAquantiaAqtion.kext

Location: /System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleEthernetAquantiaAqtion.kext

Version: 1.0.64


Terminal command:


ifconfig en2 | grep media


with this as my output for 10 Gigabit Ethernet:


media: 10Gbase-T <full-duplex,flow-control>

For ‘regular’ Gigabit Ethernet, you should get this instead:


media: 1000baseT <full-duplex,flow-control>


Errors detected:

To see if an Ethernet link is throwing more than a handful of initial errors, you can use Terminal command:


netstat -I en2


This is the resulting output. Counters are In-packets, In-errors, Out-packets, Out-Errors, Collisions. There should never be more than handful of errors from starting up, and in most cases, NONE.


Name       Mtu   Network       Address            Ipkts Ierrs    Opkts Oerrs  Coll

en2   8163  <Link#4>    00:01:d2:1a:00:dd   696697     0   484301     0     0

en2   8163  grantsmacpr fe80:4::461:ea0d:   696697     -   484301     -     -

en2   8163  192.168.0/23  192.168.0.204     696697     -   484301     -     -


Reading the top line, If the link were running beyond its ability to run and be stable, for example it auto-speeded to 10Gb but the cabling could only reliably support 2.5Gb, we would see non-zero errors counts, and errors increasing over time. (and possibly, disconnecting)

I have a couple questions.


Why are you using a USB-C adapter instead of the native MacMini Ethernet port?

Have you tested the USB-C adapter with a different computer on your network?

You mention WiFi. Do you mean you get the same speed via WiFi?

Have you tested the speed with the native Ethernet port on the Mini?

Are you measuring local node to node speed on the same network or are you testing internet speeds?

Also, when testing, are you moving data from a storag device on one machine to a storage device on another machine?

Wired through a wall jack… If the cabling in the wall is Cat 5 or worse, and not Cat 5E, you may be throttled at < 100 Mbps regardless of all the other network equipment.

I wrote in that post,


That tool (an earlier version of it) has saved me a lot of time.


The cause is almost certain to be a nonconforming component (cable, plug, socket, switch... etc).


Example

Network Utility replacement for the GUI enjoyers:


Nice find, thank you.


critter-assisted cabling downgrade


😆


I had my share of them too.