Hi,
Recently I bought a net5501 to use as a firewall and a wireless access
point. For wireless I'm using a Ralink RT2561S minipci card. The box
is running FreeBSD 6.3-RELEASE.
My setup is as follows:
* vr0 - Internet uplink
* vr1 - LAN
* ral0 - Wireless, mode 11g, channel 1, WPA
I'm experiencing really poor performance under heavy wireless load. The
interrupts seem to use around 95% of the cpu and it affects the LAN
performance considerably (voip gets choppy, slow ssh, etc.)
I did some iperf benchmarks and here is what I got:
iperf server side (soekris):
$ iperf -s -B 10.10.3.1
------------------------------------------------------------
Server listening on TCP port 5001
Binding to local address 10.10.3.1
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[ 4] local 10.10.3.1 port 5001 connected with 10.10.3.5 port 58779
[ 4] 0.0-62.6 sec 76.3 MBytes 10.2 Mbits/sec
client side (Thinkpad T42, atheros card):
$ iperf -c 10.10.3.1 -t 60 -i 5
------------------------------------------------------------
Client connecting to 10.10.3.1, TCP port 5001
TCP window size: 32.5 KByte (default)
------------------------------------------------------------
[ 3] local 10.10.3.5 port 58779 connected with 10.10.3.1 port 5001
[ 3] 0.0- 5.0 sec 7.05 MBytes 11.8 Mbits/sec
[ 3] 5.0-10.0 sec 6.74 MBytes 11.3 Mbits/sec
[ 3] 10.0-15.0 sec 6.95 MBytes 11.7 Mbits/sec
[ 3] 15.0-20.0 sec 6.91 MBytes 11.6 Mbits/sec
[ 3] 20.0-25.0 sec 6.51 MBytes 10.9 Mbits/sec
[ 3] 25.0-30.0 sec 6.28 MBytes 10.5 Mbits/sec
[ 3] 30.0-35.0 sec 6.49 MBytes 10.9 Mbits/sec
[ 3] 35.0-40.0 sec 6.68 MBytes 11.2 Mbits/sec
[ 3] 40.0-45.0 sec 6.30 MBytes 10.6 Mbits/sec
[ 3] 45.0-50.0 sec 6.20 MBytes 10.4 Mbits/sec
[ 3] 50.0-55.0 sec 4.64 MBytes 7.79 Mbits/sec
[ 3] 55.0-60.0 sec 5.52 MBytes 9.25 Mbits/sec
[ 3] 0.0-60.0 sec 76.3 MBytes 10.7 Mbits/sec
systat -v capture on the soekris during the test, showing the cpu load
and interrupts:
Tot Share Tot Share Free in out in out
Act 68112 8720 87292 11348 128984 count
All 87952 10216 2256192 13228 pages
Proc: Interrupts
r p d s w Csw Trp Sys Int Sof Flt cow 2642 total
1 2 27 1986 51 421 6723 2 3 3 zfod 1007 clk irq0
1 ozfod sio0 irq4
4.2%Sys 94.7%Intr 0.9%User 0.0%Nice 0.2%Idle 40%ozfod ohci0 ehci
| | | | | | | | | | | daefr 129 rtc irq8
==+++++++++++++++++++++++++++++++++++++++++++++++> prcfr ata0 irq14
3 dtbuf totfr 1506 ral0 ata1
Namei Name-cache Dir-cache 17521 desvn react
Calls hits % hits % 8069 numvn pdwak
4378 frevn pdpgs
intrn
Disks ad1 31008 wire
KB/t 0.00 59048 act
tps 0 28876 inact
MB/s 0.00 cache
%busy 0 128984 free
35264 buf
I compiled the soekris kernel with device polling and enabled it on both
vr0 and vr1 as suggested on the soekris wiki[1]. However, I was unable to
enable polling on ral0 (looks like this isn't supported). When running
iperf on the LAN interface I get around 92.0 Mbits/sec and the cpu load
is around 20% which is fine.
Before I got the soekris I used a Thinkpad X40 with exactly the same
config and an Atheros minipci card. I was getting around 20 Mbits/sec on
wireless, but obviously it was a much faster machine. Also the wireless
range was much greater on the Thinkpad (using the internal antenna
build in to the screen). My soekris has got a 9db antenna, I would
expect it to outperform the Thinkpad on range but it didn't. I've read
an article[2] mentioning that those Ralink cards are well know for low
quality signal so I guess that explains it.
Is there anything I can do to improve the wireless performance (as in
the cpu load)? Would changing the wireless card to a minipci Atheros
help?
I'd be very grateful for any suggestions.
Cheers,
Andrew.
--
accidents happen...
_______________________________________________
Soekris-tech mailing list
[email protected]
http://lists.soekris.com/mailman/listinfo/soekris-tech