I had a couple of issues connecting to an SMB share last night so started using ping to test connectivity.

At that point I noticed the ping was very slow and variable - my Windows laptop shows <1ms for all pings to the router.

An example:

64 bytes from 192.168.1.1: icmp_seq=335 ttl=64 time=208.350 ms
64 bytes from 192.168.1.1: icmp_seq=336 ttl=64 time=129.768 ms
64 bytes from 192.168.1.1: icmp_seq=337 ttl=64 time=51.067 ms
64 bytes from 192.168.1.1: icmp_seq=338 ttl=64 time=278.491 ms
64 bytes from 192.168.1.1: icmp_seq=339 ttl=64 time=1.315 ms
64 bytes from 192.168.1.1: icmp_seq=340 ttl=64 time=120.040 ms
64 bytes from 192.168.1.1: icmp_seq=341 ttl=64 time=40.420 ms
64 bytes from 192.168.1.1: icmp_seq=342 ttl=64 time=267.817 ms
64 bytes from 192.168.1.1: icmp_seq=343 ttl=64 time=188.607 ms
64 bytes from 192.168.1.1: icmp_seq=344 ttl=64 time=109.445 ms
64 bytes from 192.168.1.1: icmp_seq=345 ttl=64 time=1.313 ms
64 bytes from 192.168.1.1: icmp_seq=346 ttl=64 time=1.905 ms
64 bytes from 192.168.1.1: icmp_seq=347 ttl=64 time=3.662 ms
64 bytes from 192.168.1.1: icmp_seq=348 ttl=64 time=100.708 ms
64 bytes from 192.168.1.1: icmp_seq=349 ttl=64 time=21.266 ms
64 bytes from 192.168.1.1: icmp_seq=350 ttl=64 time=1.674 ms
64 bytes from 192.168.1.1: icmp_seq=351 ttl=64 time=1.397 ms
64 bytes from 192.168.1.1: icmp_seq=352 ttl=64 time=89.599 ms
64 bytes from 192.168.1.1: icmp_seq=353 ttl=64 time=10.996 ms
64 bytes from 192.168.1.1: icmp_seq=354 ttl=64 time=341.583 ms
64 bytes from 192.168.1.1: icmp_seq=355 ttl=64 time=159.329 ms
64 bytes from 192.168.1.1: icmp_seq=356 ttl=64 time=81.145 ms
64 bytes from 192.168.1.1: icmp_seq=357 ttl=64 time=1.945 ms

I have not seen any other symptoms - network speeds and things like ping test are fine. I see similar behaviour when pinging external sites though - much slower and variable.

I have tried plugging into power (possibly power saving could cause this) and also restarting.

I searched before posting and found no other questions, but now one of the related questions is useful - changing the interval to 200ms makes the pings fast and consistent.

But why would changing the ping interval to be 200ms instead of 1s change the latency?

  • Thanks for the edit. How did you change an image into text so easily? – Cybergibbons Nov 16 '13 at 10:02
  • I can type pretty quickly ;) – grg Nov 16 '13 at 10:04

The ping on Mavericks is badly broken. The reason for this is Mavericks puts network card into a power save mode within milliseconds when there's no traffic that it considers vital, and apparently it doesn't consider pings to be valuable traffic, therefore the network card (or, rather, wifi card) goes to "sleep" immediately, and it takes time for it to do so, therefore causing completely random ping results.

I have submitted a bug report to Apple in the early beta stages of the Mavericks, but they refused to address the issue, claiming "will not fix".

So the results you're seeing are not representative of the actual network connection.

  • 1
    Pls post your bug to openradar.me and I'll gladly dupe it. – bmike Dec 24 '13 at 16:38
  • 2
    Actually, the problem isn't just with the ping utility. It affects any traffic that is not a constant stream, like online gaming. Streaming a movie should work fine, but League of Legends is unplayable. Traffic isn't prioritized in any way in Mavericks, so this problem occurs whether the traffic is "important" or not. – fletom Feb 6 '14 at 7:17

Try running the following command if you need low latency for something like online gaming. It continuously pings your router every 200ms to stop the new 802.11ac Broadcom chip in the 2013 Haswell Macs from ever going to sleep.

ping -i 0.2 `netstat -nr | grep -m 1 '^default' | awk '{print $2;}'`

Hopefully, Apple will provide a proper fix for this in the coming Mac OS 10.9.2 update. They really screwed up on this one.

  • Completely agree -- short of the ping -i 0.2 workaround, the ssh is also completely unusable over WiFi in OS X 10.9. Apparently, this has actually been plaguing various hardware and OS X for a long time now: apple.stackexchange.com/a/13216/37893. – cnst Jun 23 '14 at 23:19
  • This really decrease my ping time. thanks. – Sadegh Jan 16 '15 at 15:40

weeks trying to sort random ping results from my Mac and it was the power saver setting - found this post by accident and is spot on - turned network sleep off (System Preferences-->Energy Saver-->Wake for network access) and ping is immediately consistent, as is all intermittent network traffic.

I've created an app called PingFixer to address this issue. You can download it here: https://gum.co/PingFixer

Kevin

  • 1
    $9.99 for a utility that is basically ping? That's evil. Everyone, you can run ping -i 0.2 `netstat -nr | grep -m 1 '^default' | awk '{print $2;}'` instead for free! – fletom Feb 6 '14 at 7:21
  • I agree - I understand why an app would be needed but this is very costly. – Cybergibbons Feb 6 '14 at 12:36

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.