Wifi latency issues when under load

Post Reply
elminster
Posts: 3
Joined: Fri Dec 09, 2011 7:15 pm

Wifi latency issues when under load

Post by elminster »

I've been getting issues with high latency to the 7800n via wifi while the bandwidth is more fully utilised. Normally pings to the router are 0-4ms, but even when a limit is set on a connection via QoS and bandwidth usage is only reporting ~400KB/s down 70KB/s up (Adsl real tested performance max at ~2MB/s down, ~150KB/s up), pings to the router fluctuate between 100-2000ms. This even happens with under 300 connections (Checked via telnet in ip_conntrack log), but more often around
1000 connections when it's happening.
Pings from the router itself report expected latency (~20ms to google), while from my pc they report roughly the same as to the router + ~20ms, which would indicate it's only a latency issue to the actual router.

I get a strong signal to the router itself, usually max bars on windows wifi indicator(-57 RSSI in inssider) and it happens on other computers as well, so it's not the specific wifi connection.

Further more, while there is high latency to the router, the http interface is slow and sometimes returns a 400 bad request which would indicate it's something going wrong on the router (Telnet just becomes unresponsive). This is something which has barely been mentioned on the internet and I'm not sure if it's an issue with the router or just a common thing.

With a single stream downloading at near full speed (e.g. directX from Microsoft.com, at >1800KB/s) the pings to google from my pc, router and pings to router from pc only fluctuate by less than 10 milliseconds on average, so that seems fine. However, it fluctuates much more when many connections (e.g. Torrents).

I'm not 100% sure under which circumstances the high latency occurs, since it's a bit hard to tell at times. There's no warnings or errors coming up in the logs. Normal performance is fine with the exception of a few single high latency spikes (Again, to the router, not WAN).

Here's the setup I'm using:
Windows 7 (Although others running on Vista, Xp, Mac OS, iOS, Android, and Wii's)
The router is placed in a well ventilated area away at least 2m from electrical devices.
There's usually 4 devices connected to it via wifi (but anything up to 9 at the same time), mostly using 802.11g, but I'm using 802.11n
Firmware: 1.06d
Wan: ADSL2+ (Syncing at 19Mb down/1.3Mb up)
Wifi mode: 802.11b + g + n
Wifi Tx Power Level: 100
Wifi security: WPA2-PSK + AES
Ipv6: All disabled
Other than that, everything has a basic setup. (I can get further info if needed)

Firstly, I'm not entirely sure about in-depth details about wifi, but I would have thought latency to the router wouldn't significantly be effected by on partial usage of Wan connection, especially considering ~19Mb/s vs 54-300Mb/s and even when QoS actively limiting.

Does anyone have any information that could help with this? Or (besides limiting connections from the actual devices, which I've asked people to do already) what can be done about it?

Also, does the QoS prioritisation actually work? From tests, it seems to make no noticeable difference regardless of how it's setup.

-Thanks
elminster
Posts: 3
Joined: Fri Dec 09, 2011 7:15 pm

Re: Wifi latency issues when under load

Post by elminster »

Here's an example of what I mean:
192.168.1.108 is downloading/uploading.
My computer is set as a fixed IP (via router) to 192.168.1.99.
QoS is set to limit download and upload of that ip to 30% each.
Prioritisation on 192.168.1.108 is set to low for both upload and download.
Prioritisation on 192.168.1.99 is set to high for both upload and download.
The adsl2+ (WAN connection) bandwidth isn't being maxed out.

The upload/download pings are all done at exactly the same time.
Pings to google from my PC:
Normally:
Reply from 173.194.67.105: bytes=32 time=21ms TTL=49
Reply from 173.194.67.105: bytes=32 time=22ms TTL=49
Reply from 173.194.67.105: bytes=32 time=22ms TTL=49
Reply from 173.194.67.105: bytes=32 time=20ms TTL=49
Reply from 173.194.67.105: bytes=32 time=21ms TTL=49
Reply from 173.194.67.105: bytes=32 time=21ms TTL=49
Reply from 173.194.67.105: bytes=32 time=20ms TTL=49
Reply from 173.194.67.105: bytes=32 time=26ms TTL=49
Reply from 173.194.67.105: bytes=32 time=21ms TTL=49
Reply from 173.194.67.105: bytes=32 time=21ms TTL=49
Reply from 173.194.67.105: bytes=32 time=24ms TTL=49
Reply from 173.194.67.105: bytes=32 time=21ms TTL=49
Reply from 173.194.67.105: bytes=32 time=21ms TTL=49
Reply from 173.194.67.105: bytes=32 time=20ms TTL=49
Reply from 173.194.67.105: bytes=32 time=21ms TTL=49
Reply from 173.194.67.105: bytes=32 time=21ms TTL=49
Reply from 173.194.67.105: bytes=32 time=20ms TTL=49
When downloading/uploading from other connection:
Reply from 173.194.67.99: bytes=32 time=20ms TTL=49
Reply from 173.194.67.99: bytes=32 time=277ms TTL=49
Reply from 173.194.67.99: bytes=32 time=149ms TTL=49
Reply from 173.194.67.99: bytes=32 time=368ms TTL=49
Reply from 173.194.67.99: bytes=32 time=660ms TTL=49
Reply from 173.194.67.99: bytes=32 time=244ms TTL=49
Reply from 173.194.67.99: bytes=32 time=298ms TTL=49
Reply from 173.194.67.99: bytes=32 time=257ms TTL=49
Reply from 173.194.67.99: bytes=32 time=268ms TTL=49
Reply from 173.194.67.99: bytes=32 time=196ms TTL=49
Reply from 173.194.67.99: bytes=32 time=753ms TTL=49
Request timed out.
Reply from 173.194.67.99: bytes=32 time=120ms TTL=49
Reply from 173.194.67.99: bytes=32 time=85ms TTL=49
Reply from 173.194.67.99: bytes=32 time=316ms TTL=49
Reply from 173.194.67.99: bytes=32 time=52ms TTL=49
Reply from 173.194.67.99: bytes=32 time=390ms TTL=49
Reply from 173.194.67.99: bytes=32 time=286ms TTL=49
Reply from 173.194.67.99: bytes=32 time=360ms TTL=49
Reply from 173.194.67.99: bytes=32 time=21ms TTL=49
Reply from 173.194.67.99: bytes=32 time=25ms TTL=49
Reply from 173.194.67.99: bytes=32 time=194ms TTL=49
Reply from 173.194.67.99: bytes=32 time=21ms TTL=49
Reply from 173.194.67.99: bytes=32 time=143ms TTL=49
Reply from 173.194.67.99: bytes=32 time=21ms TTL=49
Reply from 173.194.67.99: bytes=32 time=22ms TTL=49
Reply from 173.194.67.99: bytes=32 time=22ms TTL=49
Reply from 173.194.67.99: bytes=32 time=21ms TTL=49
Reply from 173.194.67.99: bytes=32 time=305ms TTL=49
Reply from 173.194.67.99: bytes=32 time=20ms TTL=49
Reply from 173.194.67.99: bytes=32 time=223ms TTL=49
Reply from 173.194.67.99: bytes=32 time=21ms TTL=49
Reply from 173.194.67.99: bytes=32 time=39ms TTL=49
Reply from 173.194.67.99: bytes=32 time=81ms TTL=49
Reply from 173.194.67.99: bytes=32 time=23ms TTL=49
Reply from 173.194.67.99: bytes=32 time=24ms TTL=49
Reply from 173.194.67.99: bytes=32 time=358ms TTL=49
Reply from 173.194.67.99: bytes=32 time=114ms TTL=49
Reply from 173.194.67.99: bytes=32 time=247ms TTL=49
Reply from 173.194.67.99: bytes=32 time=332ms TTL=49
Reply from 173.194.67.99: bytes=32 time=19ms TTL=49
Reply from 173.194.67.99: bytes=32 time=21ms TTL=49
Reply from 173.194.67.99: bytes=32 time=20ms TTL=49
Reply from 173.194.67.99: bytes=32 time=20ms TTL=49
Reply from 173.194.67.99: bytes=32 time=22ms TTL=49
Reply from 173.194.67.99: bytes=32 time=23ms TTL=49
Reply from 173.194.67.99: bytes=32 time=86ms TTL=49
Reply from 173.194.67.99: bytes=32 time=381ms TTL=49
Reply from 173.194.67.99: bytes=32 time=625ms TTL=49
Reply from 173.194.67.99: bytes=32 time=566ms TTL=49
Reply from 173.194.67.99: bytes=32 time=146ms TTL=49
Reply from 173.194.67.99: bytes=32 time=191ms TTL=49
Pings to router:
Normally:
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=2ms TTL=64
Reply from 192.168.1.254: bytes=32 time=2ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=7ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=3ms TTL=64
Reply from 192.168.1.254: bytes=32 time=4ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=2ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=2ms TTL=64
Reply from 192.168.1.254: bytes=32 time=5ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
While downloading/uploading from other pc:
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=203ms TTL=64
Reply from 192.168.1.254: bytes=32 time=120ms TTL=64
Reply from 192.168.1.254: bytes=32 time=410ms TTL=64
Reply from 192.168.1.254: bytes=32 time=137ms TTL=64
Reply from 192.168.1.254: bytes=32 time=294ms TTL=64
Reply from 192.168.1.254: bytes=32 time=349ms TTL=64
Reply from 192.168.1.254: bytes=32 time=24ms TTL=64
Reply from 192.168.1.254: bytes=32 time=318ms TTL=64
Reply from 192.168.1.254: bytes=32 time=8ms TTL=64
Reply from 192.168.1.254: bytes=32 time=76ms TTL=64
Reply from 192.168.1.254: bytes=32 time=288ms TTL=64
Reply from 192.168.1.254: bytes=32 time=325ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=154ms TTL=64
Reply from 192.168.1.254: bytes=32 time=269ms TTL=64
Reply from 192.168.1.254: bytes=32 time=87ms TTL=64
Reply from 192.168.1.254: bytes=32 time=412ms TTL=64
Reply from 192.168.1.254: bytes=32 time=281ms TTL=64
Reply from 192.168.1.254: bytes=32 time=231ms TTL=64
Reply from 192.168.1.254: bytes=32 time=354ms TTL=64
Reply from 192.168.1.254: bytes=32 time=224ms TTL=64
Reply from 192.168.1.254: bytes=32 time=338ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=181ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=121ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=2ms TTL=64
Reply from 192.168.1.254: bytes=32 time=2ms TTL=64
Reply from 192.168.1.254: bytes=32 time=291ms TTL=64
Reply from 192.168.1.254: bytes=32 time=4ms TTL=64
Reply from 192.168.1.254: bytes=32 time=46ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=44ms TTL=64
Reply from 192.168.1.254: bytes=32 time=75ms TTL=64
Reply from 192.168.1.254: bytes=32 time=3ms TTL=64
Reply from 192.168.1.254: bytes=32 time=5ms TTL=64
Reply from 192.168.1.254: bytes=32 time=308ms TTL=64
Reply from 192.168.1.254: bytes=32 time=115ms TTL=64
Reply from 192.168.1.254: bytes=32 time=249ms TTL=64
Reply from 192.168.1.254: bytes=32 time=111ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=7ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time<1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Reply from 192.168.1.254: bytes=32 time=392ms TTL=64
Reply from 192.168.1.254: bytes=32 time=19ms TTL=64
Reply from 192.168.1.254: bytes=32 time=559ms TTL=64
Reply from 192.168.1.254: bytes=32 time=158ms TTL=64
Reply from 192.168.1.254: bytes=32 time=190ms TTL=64
Reply from 192.168.1.254: bytes=32 time=1ms TTL=64
Pings to google from router (via telnet):
Normally:
PING google.co.uk (209.85.229.105): 56 data bytes
56 bytes from 209.85.229.105: icmp_seq=0 ttl=55 time=20.0 ms
56 bytes from 209.85.229.105: icmp_seq=1 ttl=55 time=20.0 ms
56 bytes from 209.85.229.105: icmp_seq=2 ttl=55 time=15.0 ms
56 bytes from 209.85.229.105: icmp_seq=3 ttl=55 time=20.0 ms
when downloading from other:
PING google.co.uk (173.194.66.105): 56 data bytes
56 bytes from 173.194.66.105: icmp_seq=0 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=1 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=2 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=3 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=4 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=5 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=6 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=7 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=8 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=9 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=10 ttl=50 time=25.0 ms
56 bytes from 173.194.66.105: icmp_seq=11 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=12 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=13 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=14 ttl=50 time=30.0 ms
56 bytes from 173.194.66.105: icmp_seq=15 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=16 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=17 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=18 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=19 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=20 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=21 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=22 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=23 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=24 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=25 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=26 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=27 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=28 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=29 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=30 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=31 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=32 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=33 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=34 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=35 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=36 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=37 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=38 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=39 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=40 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=41 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=42 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=43 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=44 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=45 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=46 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=47 ttl=50 time=15.0 ms
56 bytes from 173.194.66.105: icmp_seq=48 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=49 ttl=50 time=20.0 ms
56 bytes from 173.194.66.105: icmp_seq=50 ttl=50 time=15.0 ms
Tomken
Posts: 467
Joined: Tue Jul 26, 2011 10:31 am
Location: Co Durham

Re: Wifi latency issues when under load

Post by Tomken »

Download and run this free program to optimize your MTU and ensure equal settings are in the router as well as your pc, as this could be the cause of the high pings.

http://www.speedguide.net/downloads.php

This link will give you the instructions how to use this tool http://www.kitz.co.uk/adsl/tweak2.htm

The version shown on that site is an older version of the Optimizer, but once downloaded, you will see the similarities.

This program doesn't produce a desktop icon. You need to go to where it was downloaded, right click on it and run it as an Administrator.

You will need to set the MTU in the router and the adaptors in the pc to 1500 first as well as being wired, otherwise the Optimizer will just give whatever is in the router as the recommendation.

There is an option for the tool to reset all adaptors but it is worth checking the pc afterwards, as I've found it doesn't always change both.

Not sure if you know how to do this but if you don't, then here goes.

These cmds are done as an Administrator from the cmd prompt and by typing :-

netsh interface ipv4 show interfaces > Enter (This will show the pseudo loop, wireless and LAN adaptors with the numbers for these in the Index column).

Then type :- netsh interface ipv4 set subinterface (wireless no.) mtu=1500 store=persistent > Enter

Repeat the cmd using the LAN adaptor number.

After running the tool, to confirm, repeat the "show interfaces" cmd and if any of the adaptors haven't been changed, then repeat the "set subinterface" cmd for whichever adaptor needs changing.

Once you have confirmed the pc's adaptors, then you will need to match that setting in the router.

Sometimes just setting the router and pc to the max 1500 rather than what is given as the optimal MTU can give a quicker connection.

A change of DNS server may also help, I use Open DNS for my primary and Google's primary as my secondary, as I've found Open DNS to be fractionally quicker than Google and use Google as the secondary on a "belt and braces" thingy.

Open DNS Primary 208.67.222.222 / Secondary 208.67.220.220

Google Primary 8.8.8.8 / Secondary 8.8.4.4

I also change the laptop's setttings from auto connect DNS to my primary and secondary settings.

Hope this helps.

PS.... I was wondering who is your ISP to get 1.3MB upload on ADSL2+ ?
Last edited by Tomken on Wed Dec 28, 2011 9:29 pm, edited 2 times in total.
elminster
Posts: 3
Joined: Fri Dec 09, 2011 7:15 pm

Re: Wifi latency issues when under load

Post by elminster »

Thanks for the reply.

I've tried doing the ping test and it fragments at >1472 (+28 bytes gives an MTU of 1500).
I'll have a go at the other things, but away for most of the holidays.

The isp is BeThere, I could probably get higher download sync if I adjust their settings (They allow you to set SnR remotely).
Current sync is: 1313 / 19388 kbps
Post Reply