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 10.0.2.1 (10.0.2.1) 56(84) bytes of data.
64 bytes from 10.0.2.1: icmp_seq=1 ttl=64 time=367 ms
64 bytes from 10.0.2.1: icmp_seq=2 ttl=64 time=8.48 ms
64 bytes from 10.0.2.1: icmp_seq=3 ttl=64 time=971 ms
64 bytes from 10.0.2.1: icmp_seq=4 ttl=64 time=1.11 ms
64 bytes from 10.0.2.1: icmp_seq=5 ttl=64 time=91.6 ms
64 bytes from 10.0.2.1: icmp_seq=6 ttl=64 time=482 ms
64 bytes from 10.0.2.1: icmp_seq=7 ttl=64 time=1.15 ms
64 bytes from 10.0.2.1: icmp_seq=8 ttl=64 time=131 ms
64 bytes from 10.0.2.1: icmp_seq=9 ttl=64 time=92.6 ms
64 bytes from 10.0.2.1: icmp_seq=10 ttl=64 time=2.72 ms
--- 10.0.2.1 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:
--- 10.0.2.1 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:
--- 10.0.2.1 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:
*-network
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=6.30.223.248 (r487574) ip=10.0.2.71 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
Version: 6.30.223.248+bdcom-0ubuntu8
Priority: optional
Section: restricted/admin
Source: bcmwl
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Alberto Milone <[email protected]>
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.
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