2

I have 4 machines all on the same network (600mbps/60mpbs ISP link):

  • M2 Mac Mini - ethernet, sometimes a page needs ~5 seconds to even start loading, when Slack loads it works but I can wait 30 seconds for a pasted image to load
  • M1 Mac Pro - Wifi, same as above
  • Linux PC - ethernet, completely fine
  • Lenovo Laptop (windows) - WiFi, completely fine

What can I do to analyze the cause and improve network speed for the Macs?

EDIT: My Analysis

  1. The difference of behavior between the Apple products and Linux/Windows machines is so big it's visible to a naked eye - I feel it's mostly about how a connection is established - Macs can take up to 30 seconds to start pulling assets, for the others it's always immediate.
  2. It's an ongoing problem, does not happen 100% of the time but it's a day-to-day problem.
  3. There does not seem to be a rule to what page is being accessed - I might have Slack itself loaded but a pasted image (which is being loaded from outside of Slack) takes 30 seconds to start loading, same happens to the likes of YouTube, comments, suggested videos on the right load but the video itself takes a moment to load.
  4. Pings are always fine (~20ms)
  5. I would make the guess that I'm capped at some connection limit, i.e. the system has 100 active connections and is not allowing to make more - something like that rather than bandwidth

EDIT 2: Further Analysis

  1. Disabled IPv6 completely per comments - did not help at all
  2. When a browser (Chrome, Firefox) is really stuck, it's stuck on "establishing connection".
  3. Changing networks seems to help, please see image, using the LTE backup ISP solves the problem (which is not a solution but an indication of the problem).

Here's a summary of my network, red lines indicate troublesome connections, all IPv4, same DNS (8.8.8.8), green ones work great, although I'm still testing the M2 Mini to the backup ISP, but it looks like Macs don't work well in a Ubiquity network - which I heard about in regards to the Mesh WiFi networks but why would an Ethernet connection going through a simple switch and a basic router behave so badly?

enter image description here

EDIT 3: I was able to capture the network connection, this was Chrome trying to connect to Slack - 10 seconds "stalled":

enter image description here

EDIT 4: Firefox works great, no stalling at all.

15
  • 4
    The issue as described here sounds like a typical misconfiguration of DNS. Have you checked that your DNS is setup the same on the Macs as on Linux/Windows? - In addition, remember to check that your IPv6 setup is correct. It might be that your Macs are using IPv6 and hitting a misconfigured router or similar, while the Linux/Windows machines are using IPv4 only. A quick way to test is to disable IPv6 on the Macs.
    – jksoegaard
    Commented Apr 11, 2023 at 8:35
  • 1
    Different machines are using different DNS settings, the windows one is using my local router, linux and macs are using 8.8.8.8, I changed the mac mini from local router to 8.8.8.8 yesterday, no improvement. I'm using exclusively IPv4 across the whole network.
    – McAbra
    Commented Apr 11, 2023 at 9:01
  • 1
    Regarding the idea that Macs does not work well in Ubiquity networks - that's definitely not the case. We have tons of Macs setup in Ubiquity networks - no problem there. A little trivia is that Ubiquity itself was actually founded by an ex-Apple WiFi engineer.
    – jksoegaard
    Commented Apr 13, 2023 at 22:37
  • 1
    The screenshot from Chrome is interesting. This in addition to the fact that it works with another ISP could indicate that your ISP has some funky problems with connection termination (i.e. Chrome is actually not waiting to receive something on the network, rather it is waiting for a connection to be able for it to be able to send the request in the first place - as there's a limit on the number of connections it will hold open at a time). Try the following commands in a Terminal to adjust your connection keepalive settings, and check whether this changes anything:
    – jksoegaard
    Commented Apr 13, 2023 at 22:43
  • 1
    sudo sysctl -w net.inet.tcp.keepidle=15000 sudo sysctl -w net.inet.tcp.keepinit=15000 sudo sysctl -w net.inet.tcp.keepintvl=10000 sudo sysctl -w net.inet.tcp.keepcnt=3 sudo sysctl -w net.inet.tcp.always_keepalive=1
    – jksoegaard
    Commented Apr 13, 2023 at 22:43

1 Answer 1

1

The screenshot from Chrome showing that the time is spent in the state "Stalled" indicates that the browser is itself delaying the connection from happening. I.e. it not so that the browser has sent out some packet and is waiting for a reply from the server.

This usually happens when the browsers runs out of connections. It can do so fairly quickly as Chrome (and other browsers) have built-in, arbitrary limits on the number of connections they will hold for a server. This could indicate that your local network (i.e. router, firewall or similar appliance) or ISP has a broken network setup in terms of connection management.

You can test out these commands to change keep-alive parameters in order to ensure connections are closed out faster:

sudo sysctl -w net.inet.tcp.keepidle=15000 
sudo sysctl -w net.inet.tcp.keepinit=15000 
sudo sysctl -w net.inet.tcp.keepintvl=10000 
sudo sysctl -w net.inet.tcp.keepcnt=3 
sudo sysctl -w net.inet.tcp.always_keepalive=1 

This means that the system will use slightly more bandwidth on connection management, but will be able to discover broken connections quicker.

5
  • (continuing the thread from the question comments) Sadly, it did not help at all. It's still stalling for exactly 10.01s. I just checked while Chrome was stalling I opened the same page in Firefox and it loaded instantly, I'll try to spend some time with Firefox.
    – McAbra
    Commented Apr 20, 2023 at 6:30
  • Please include the requested lsof output - that would give an indication of the problem. There has been multiple, knowns bugs in Chrome with a 10 second stall before - so that's also a possibility.
    – jksoegaard
    Commented Apr 20, 2023 at 6:53
  • I was not comfortable sharing everything that lsof -i gave out, here's a redacted version: gist.github.com/pkucmus/72553867e1ce9af226f5fd2bb72db619, another finding is that the Steam App has the same problem (apparently it's a version of Chromium)
    – McAbra
    Commented Apr 21, 2023 at 20:10
  • @McAbra So when you say you "redacted" it - what exactly did you cut out? (i.e. can you describe what you cut out)
    – jksoegaard
    Commented Apr 22, 2023 at 21:42
  • The targets to which connections are established (word REDACTED) and the username. I did not cut out any lines of the output.
    – McAbra
    Commented Apr 29, 2023 at 9:57

You must log in to answer this question.

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