Mac Pro NIC not close to 1 Gbps connection speed

In my home office, I have Comcast's 1 Gbps Internet service. It was just installed this morning, moving up from my old 200 Mbps Xfinity service.


I'm using a wired connection on a 2008 (3,1) Mac Pro connected directly to the modem less than 5 feet away. I'm currently using Cat 5E cables. I'm happy to try Cat 6, but there's no reason it shouldn't be pulling close to the 1 Gbps ceiling on a 5E, as far as I know and as far as Comcast knows. It's their cable too, and it's brand new.


So upon completion of the install, their device using speedtest.net was doing about 950Mbps. Close enough for me. However, when I connected up my Mac Pro using the same 5E cable straight to the modem, it only pulls around 675-750 Mbps.


Now, I need to monitor it over time. I acknowledge Comast does not guarantee their speed, and network variability is to be expected. That said, the fact that I dropped on my own device to 750 Mbps (test 1, less than 5 minutes after Comcast's test) and 675 Mbps (test 2, 10 minutes later) basically immediately after Comcast's test....well, it seems unlikely Comcast's network is suddenly slower.


It's 2008 hardware...so I double checked the specs for the 3,1 Mac Pro (2x 2.8 Ghz 8 core model), and verified the built-in NIC is fully capable of Gigabit speeds, with "two independent 10/100/1000BASE-T [Gigabit] Ethernet (RJ-45) interfaces with support for jumbo frames."


I'm at a loss. What other factors would cause a notably lower performance level from the 1 Gbps ceiling? Remember, this is a wired connection straight to the modem, not a wireless signal.

Posted on Nov 24, 2017 8:55 AM

Reply
12 replies

Nov 24, 2017 9:51 AM in response to dantrimble

Let's actually test to see if your Mac Pro's Ethernet connection can support Jumbo Frames.


A simple way to do so, is to use the Terminal app, as follows:

  • Run Terminal.
  • At the command prompt, enter: ping -D -s 8184 <router IP address>
    • Where, D = Do Not Fragment; s = Packet Size; <router IP address> = router's LAN-side IP address
    • For example, if the router is at: 192.168.1.1, then enter: ping -D -s 8184 192.168.1.1
  • Note the results. If successful, there should be no errors.

Nov 24, 2017 7:39 PM in response to Grant Bennet-Alder

Hi Grant,


Each device would need to be checked to verify that they have been properly configured for jumbo frames. Consumer-grade, non-manageable Ethernet switches typically cannot be configured beyond what the manufacturer sets. It may be possible that your current switches do not fully support jumbo frames.


When testing for jumbo frame frame support between multiple devices it would be best to test each link, and then, the entire path.


Another method is to use an app, like JPerf, to do a more comprehensive level of testing.

Nov 24, 2017 5:22 PM in response to Tesserax

That is an interesting tool.


Can I join this conversation as well? I need some refinement on this.


I have a 2009 model Mac Pro with Ethernet deliberately set to connect Manually at 1000BaseT (which it does) and to use Jumbo (9000 byte) frames. Network Utility is not showing a substantial number of errors.


If I ping from my Mac Pro to my (fairly old) Router, I get the frame too long error. Not really unexpected.

If I ping form there to my Mac Pro 2009 Server, which is connected through two Gigabit Switches, I also get frame too long, which surprises me and calls into question whether my Switches are adequate.

If I ping my own local IP address, I get frame too long error, which may add weight to the concept that my Switches are inadequate.

If i ping 127.0.0.1 (the "loopback" IP address, i also get frame too long error. I see from the lights on the Switch that there IS a Physical ping being sent, even with 127.0.0.1.


This seems to fairly clearly indicate my Switches (and Router, but I do not have Gigabit Internet service) are not handling Jumbo frames.


¿Is that correct?

Nov 24, 2017 7:54 PM in response to Grant Bennet-Alder

The ping “size” reflects the one when pinging from a Mac. It is different for Windows and Linux clients. The size is calculated as follows: The maximum OS supported ping packet size minus the ICMP header. For Macs that size is: 8192 - 8 = 8184


Regardless, if you‘re getting successful pings at 8000+, your network is in the jumbo frames region, and I wouldn’t be too concerned about it ... unless you are seeing a lot of errors.




Nov 24, 2017 8:02 PM in response to Tesserax

The number you originally gave, plus what appears to be 8 bytes of overhead, seems to yield a ping size of 8192, exactly binary 8KiloBytes.


Mine looks to be 20 bytes shorter at 8164 plus 8 or 8172. So that may not be regulation Jumbo at 9000, but it is nontrivially big. I agree this is likely a limitation of the unmanaged and unadjustable Gateway 7142-08 port Switches I am using.


My Wi-Fi Routers, on the other hand, can't accept pings over 1492 gross size, (ping spec 1488) for the actiontec FIOS Router, and slightly less at 1480 gross (ping spec 1472) for the Apple Airport Extreme tall model.

Dec 22, 2017 11:35 AM in response to Grant Bennet-Alder

Ok the above may be cockpit error on my part. I re-did my experiments pinging between two macs through two Gateway Gigabit Ethernet Switches. Set the jumbo frame size for the Macs at each end to 8192 ( binary 8K), then sent larger and larger ping packets until it failed, and looked at the largest ping packet that would go through.

Largest net size specified in the command line was 8154, which admits it adds 8 for a gross size of 8162.


Then I pinched the jumbo frame size in System preferences down in stages until that largest ping was lost, and looked at the last size that worked.


With jumbo frame size set to 8182 at each end, the largest ping went through without problem. Smaller frame size meant the largest ping could not go through.


So I figure 8182 is the practical list to jumbo frame specification when going mac-to-mac directly through those two switches, and not going through anything with a smaller maximum frame size, like a different Switch or a Router.


It is interesting that you started with almost that exact number when specifying the larges data size in a ping packet.

Dec 22, 2017 2:13 PM in response to Grant Bennet-Alder

Thanks for the updates. Keep in mind that macOS limits pings to a maximum of 8192 bytes which included the 20 byte TCP header. We just need to include the 8 byte ICMP header. Therefore: 8192 - 8 = 8184 byte packets to ping test with.


You can actually tweak macOS to support 9000 byte packets, by increasing the datagram size with the following Terminal command: sudo sysctl -w net.inet.raw.maxdgram=16384


However, every networking device would have to support this as well.

Dec 22, 2017 2:47 PM in response to Tesserax

I think you are saying if every other device were extremely capable, you might expect 8192 byte jumbo frames to work on Macs, but not any larger without changing those settings.


I will keep that command (and that ability) in mind.


--------

I am looking forward to some new developments in the area of affordable Copper-only 10G, 5G, N-Base-T Ethernet Switches, and the iMac Pro with that capability should help make that market segment go.


In the meantime I am shuffling the cables in my upstairs "computer room" because in my experiments I discovered I had convenience-wired computers to the Ethernet ports an a nearby Apple router, which supports Gigabit Ethernet, but NOT jumbo frames. Pulling a few more cables back to the nearest gigabit switch instead.

Dec 22, 2017 9:49 AM in response to Tesserax

I switched up to 10.12 Sierra and it appears a few things have changed.


The maximum size I can specify in the ping is now 8136 (down from 8164 i reported previously).


the size i specify in the ping command has 8 added to it in the report line, so if i say:

ping -D -s 8136 192.168.0.12


PING 192.168.0.12 (192.168.0.12): 8136 data bytes

8144 bytes from 192.168.0.12: icmp_seq=0 ttl=64 time=1.140 ms

8144 bytes from 192.168.0.12: icmp_seq=1 ttl=64 time=0.976 ms

8144 bytes from 192.168.0.12: icmp_seq=2 ttl=64 time=1.148 ms


ping -D -s 8138 192.168.0.12


PING 192.168.0.12 (192.168.0.12): 8138 data bytes

ping: sendto: Message too long

ping: sendto: Message too long

Request timeout for icmp_seq 0

ping: sendto: Message too long

Request timeout for icmp_seq 1

ping: sendto: Message too long

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Mac Pro NIC not close to 1 Gbps connection speed

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.