Ubuntu – Extremely high ping to local router over WiFi


I am currently running Ubuntu 16.04 LTS, and I'm running into an extremely annoying problem with my wireless setup. Occasionally (and seemingly, randomly), my ping will begin to skyrocket and get out of hand:

PING ( 56(84) bytes of data.
64 bytes from icmp_seq=1 ttl=64 time=367 ms
64 bytes from icmp_seq=2 ttl=64 time=8.48 ms
64 bytes from icmp_seq=3 ttl=64 time=971 ms
64 bytes from icmp_seq=4 ttl=64 time=1.11 ms
64 bytes from icmp_seq=5 ttl=64 time=91.6 ms
64 bytes from icmp_seq=6 ttl=64 time=482 ms
64 bytes from icmp_seq=7 ttl=64 time=1.15 ms
64 bytes from icmp_seq=8 ttl=64 time=131 ms
64 bytes from icmp_seq=9 ttl=64 time=92.6 ms
64 bytes from icmp_seq=10 ttl=64 time=2.72 ms

--- ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9005ms
rtt min/avg/max/mdev = 1.116/215.207/971.833/297.328 ms

I've also seen cases where my ping to my router is in the upwards of the 4000ms range:

--- ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9031ms
rtt min/avg/max/mdev = 1425.396/3721.331/5352.349/1087.015 ms, pipe 5

Other pings seem to just drop packets entirely:

--- ping statistics ---
60 packets transmitted, 48 received, 20% packet loss, time 71043ms
rtt min/avg/max/mdev = 0.544/2206.796/7108.406/2372.068 ms, pipe 8

Otherwise, the system functions completely normally. How can I fix or at least reduce this excessive latency?

lshw output is as follows:

     description: Wireless interface
     product: BCM4352 802.11ac Wireless Network Adapter
     vendor: Broadcom Corporation
     physical id: 0
     bus info: pci@0000:03:00.0
     logical name: wlan0
     version: 03
     serial: [REDACTED]
     width: 64 bits
     clock: 33MHz
     capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
     configuration: broadcast=yes driver=wl0 driverversion= (r487574) ip= latency=0 multicast=yes wireless=IEEE 802.11abg
     resources: irq:19 memory:f7a00000-f7a07fff memory:f7800000-f79fffff

The Broadcom STA driver is installed and is running. This is happening to no other devices on the network.

uname -a returns:

Linux ArcticWolf 4.4.0-57-generic #78-Ubuntu SMP Fri Dec 9 23:50:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

I have the latest (known) drivers installed:

Package: bcmwl-kernel-source
Priority: optional
Section: restricted/admin
Source: bcmwl
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Alberto Milone <alberto.milone@canonical.com>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 8,013 kB
Depends: dkms, linux-libc-dev, libc6-dev

iwconfig output at any given time:

wlan0     IEEE 802.11abg  ESSID:"[redacted]"  
          Mode:Managed  Frequency:2.412 GHz  Access Point: [REDACTED]   
          Bit Rate=144 Mb/s   Tx-Power=200 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=51/70  Signal level=-59 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

I can occasionally "jar" the network back to normal by disconnecting and reconnecting the wireless connection, but it always goes back to normal after a few minutes of operating normally.

There are no other wireless routers or devices nearby that may cause interference on my WiFi channel. The router firmware is up-to-date and I have tried rebooting it numerous times now.

The router is on Channel 1 (and is the only device on the channel), and WPA2-AES is being used. Distance makes no difference.

This is not a router or interference issue, as other devices on my network work perfectly and exhibit none of the same symptoms.

This happens (so far) on all networks I've tested with, suggesting that this is actually an issue with my system and not my router. This situation happens in both noisy and quiet radio areas, further suggesting that it has nothing to do with interference.

Best Answer

Since power management seems to be the problem, this command will disable power management and keep it from turning itself back on

sudo sed -i 's/wifi.powersave = 3/wifi.powersave = 2/' /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf

The issue was caused by this commit to the network manager git

This comment on the bug report shows us that using the wifi.powersave = 3 enables power management and using 2 will disable it

We could also try a newer version of bcmwl-kernel-source

sudo apt-get install linux-headers-$(uname -r) build-essential dkms
wget http://de.archive.ubuntu.com/ubuntu/pool/multiverse/b/broadcom-sta/broadcom-sta-dkms_6.30.223.271-4_all.deb
sudo dpkg -i broadcom-sta-dkms_6.30.223.271-4_all.deb

As recommended by praseodym here

Related Question