Don’t underestimate the Turris:
I did some quick benchmarks - the setup:
- Turris Omnia: As delivered with stock 5 Ghz wifi card and antennas
- MacBook Pro (Mid 2014, OSX 10.11.6)
- 5 Ghz Wifi set to 80 MHz channels and 27dBm (legally, thanks to DFS support - I wonder if the inital 60s radar scan is repeated any time later during usage… can’t find info on that)
- No other 5 Ghz network in the neighborhood
- Ridiculously ideal conditions: MacBook is ~1m directly in front of Turris with line-of-sight
MacBook -> Turris (iperf server)
Peaks at 777 Mb/s, average 645 Mb/s
WAN latency goes from ~5ms to ~15ms (SQM enabled on WAN interface)
------------------------------------------------------------
Client connecting to daller, TCP port 5001
TCP window size: 129 KByte (default)
------------------------------------------------------------
[ 5] local 10.30.12.158 port 61293 connected with 10.30.1.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0- 5.0 sec 388 MBytes 651 Mbits/sec
[ 5] 5.0-10.0 sec 349 MBytes 586 Mbits/sec
[ 5] 10.0-15.0 sec 366 MBytes 613 Mbits/sec
[ 5] 15.0-20.0 sec 374 MBytes 628 Mbits/sec
[ 5] 20.0-25.0 sec 400 MBytes 672 Mbits/sec
[ 5] 25.0-30.0 sec 412 MBytes 692 Mbits/sec
[ 5] 30.0-35.0 sec 463 MBytes 777 Mbits/sec
[ 5] 35.0-40.0 sec 376 MBytes 632 Mbits/sec
[ 5] 40.0-45.0 sec 365 MBytes 612 Mbits/sec
[ 5] 45.0-50.0 sec 364 MBytes 611 Mbits/sec
[ 5] 50.0-55.0 sec 373 MBytes 626 Mbits/sec
[ 5] 55.0-60.0 sec 385 MBytes 646 Mbits/sec
[ 5] 0.0-60.0 sec 4.51 GBytes 645 Mbits/sec
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=58 time=5.608 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=58 time=5.953 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=58 time=6.699 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=58 time=5.589 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=58 time=5.338 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=58 time=5.674 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=58 time=5.449 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=58 time=5.675 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=58 time=5.686 ms
64 bytes from 8.8.8.8: icmp_seq=9 ttl=58 time=5.734 ms
64 bytes from 8.8.8.8: icmp_seq=10 ttl=58 time=5.668 ms
64 bytes from 8.8.8.8: icmp_seq=11 ttl=58 time=5.565 ms
64 bytes from 8.8.8.8: icmp_seq=12 ttl=58 time=5.626 ms
64 bytes from 8.8.8.8: icmp_seq=13 ttl=58 time=5.483 ms
64 bytes from 8.8.8.8: icmp_seq=14 ttl=58 time=5.580 ms
64 bytes from 8.8.8.8: icmp_seq=15 ttl=58 time=15.009 ms
64 bytes from 8.8.8.8: icmp_seq=16 ttl=58 time=11.919 ms
64 bytes from 8.8.8.8: icmp_seq=17 ttl=58 time=16.563 ms
64 bytes from 8.8.8.8: icmp_seq=18 ttl=58 time=16.295 ms
64 bytes from 8.8.8.8: icmp_seq=19 ttl=58 time=14.256 ms
64 bytes from 8.8.8.8: icmp_seq=20 ttl=58 time=16.093 ms
64 bytes from 8.8.8.8: icmp_seq=21 ttl=58 time=13.970 ms
64 bytes from 8.8.8.8: icmp_seq=22 ttl=58 time=14.872 ms
64 bytes from 8.8.8.8: icmp_seq=23 ttl=58 time=13.857 ms
64 bytes from 8.8.8.8: icmp_seq=24 ttl=58 time=12.877 ms
64 bytes from 8.8.8.8: icmp_seq=25 ttl=58 time=14.337 ms
64 bytes from 8.8.8.8: icmp_seq=26 ttl=58 time=13.647 ms
64 bytes from 8.8.8.8: icmp_seq=27 ttl=58 time=17.456 ms
64 bytes from 8.8.8.8: icmp_seq=28 ttl=58 time=11.873 ms
64 bytes from 8.8.8.8: icmp_seq=29 ttl=58 time=16.316 ms
64 bytes from 8.8.8.8: icmp_seq=30 ttl=58 time=15.365 ms
64 bytes from 8.8.8.8: icmp_seq=31 ttl=58 time=13.159 ms
64 bytes from 8.8.8.8: icmp_seq=32 ttl=58 time=17.427 ms
64 bytes from 8.8.8.8: icmp_seq=33 ttl=58 time=12.123 ms
64 bytes from 8.8.8.8: icmp_seq=34 ttl=58 time=12.765 ms
64 bytes from 8.8.8.8: icmp_seq=35 ttl=58 time=16.684 ms
64 bytes from 8.8.8.8: icmp_seq=36 ttl=58 time=12.312 ms
64 bytes from 8.8.8.8: icmp_seq=37 ttl=58 time=12.603 ms
64 bytes from 8.8.8.8: icmp_seq=38 ttl=58 time=11.244 ms
64 bytes from 8.8.8.8: icmp_seq=39 ttl=58 time=13.720 ms
64 bytes from 8.8.8.8: icmp_seq=40 ttl=58 time=14.320 ms
64 bytes from 8.8.8.8: icmp_seq=41 ttl=58 time=12.353 ms
64 bytes from 8.8.8.8: icmp_seq=42 ttl=58 time=10.380 ms
64 bytes from 8.8.8.8: icmp_seq=43 ttl=58 time=14.875 ms
64 bytes from 8.8.8.8: icmp_seq=44 ttl=58 time=11.396 ms
64 bytes from 8.8.8.8: icmp_seq=45 ttl=58 time=13.038 ms
64 bytes from 8.8.8.8: icmp_seq=46 ttl=58 time=9.667 ms
64 bytes from 8.8.8.8: icmp_seq=47 ttl=58 time=14.574 ms
64 bytes from 8.8.8.8: icmp_seq=48 ttl=58 time=15.222 ms
64 bytes from 8.8.8.8: icmp_seq=49 ttl=58 time=9.462 ms
64 bytes from 8.8.8.8: icmp_seq=50 ttl=58 time=15.640 ms
64 bytes from 8.8.8.8: icmp_seq=51 ttl=58 time=18.528 ms
64 bytes from 8.8.8.8: icmp_seq=52 ttl=58 time=10.984 ms
64 bytes from 8.8.8.8: icmp_seq=53 ttl=58 time=12.594 ms
64 bytes from 8.8.8.8: icmp_seq=54 ttl=58 time=14.696 ms
64 bytes from 8.8.8.8: icmp_seq=55 ttl=58 time=13.478 ms
64 bytes from 8.8.8.8: icmp_seq=56 ttl=58 time=17.183 ms
64 bytes from 8.8.8.8: icmp_seq=57 ttl=58 time=15.860 ms
64 bytes from 8.8.8.8: icmp_seq=58 ttl=58 time=15.452 ms
64 bytes from 8.8.8.8: icmp_seq=59 ttl=58 time=18.088 ms
64 bytes from 8.8.8.8: icmp_seq=60 ttl=58 time=15.048 ms
64 bytes from 8.8.8.8: icmp_seq=61 ttl=58 time=11.053 ms
64 bytes from 8.8.8.8: icmp_seq=62 ttl=58 time=14.627 ms
64 bytes from 8.8.8.8: icmp_seq=63 ttl=58 time=12.567 ms
64 bytes from 8.8.8.8: icmp_seq=64 ttl=58 time=20.604 ms
64 bytes from 8.8.8.8: icmp_seq=65 ttl=58 time=20.301 ms
64 bytes from 8.8.8.8: icmp_seq=66 ttl=58 time=13.901 ms
64 bytes from 8.8.8.8: icmp_seq=67 ttl=58 time=10.842 ms
64 bytes from 8.8.8.8: icmp_seq=68 ttl=58 time=11.648 ms
64 bytes from 8.8.8.8: icmp_seq=69 ttl=58 time=16.727 ms
64 bytes from 8.8.8.8: icmp_seq=70 ttl=58 time=15.835 ms
64 bytes from 8.8.8.8: icmp_seq=71 ttl=58 time=11.639 ms
64 bytes from 8.8.8.8: icmp_seq=72 ttl=58 time=12.072 ms
64 bytes from 8.8.8.8: icmp_seq=73 ttl=58 time=16.699 ms
64 bytes from 8.8.8.8: icmp_seq=74 ttl=58 time=18.162 ms
64 bytes from 8.8.8.8: icmp_seq=75 ttl=58 time=5.762 ms
64 bytes from 8.8.8.8: icmp_seq=76 ttl=58 time=5.556 ms
64 bytes from 8.8.8.8: icmp_seq=77 ttl=58 time=5.570 ms
64 bytes from 8.8.8.8: icmp_seq=78 ttl=58 time=5.524 ms
64 bytes from 8.8.8.8: icmp_seq=79 ttl=58 time=5.659 ms
64 bytes from 8.8.8.8: icmp_seq=80 ttl=58 time=5.749 ms
64 bytes from 8.8.8.8: icmp_seq=81 ttl=58 time=5.252 ms
^C
--- 8.8.8.8 ping statistics ---
82 packets transmitted, 82 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 5.252/11.959/20.604/4.370 ms
Turris -> MacBook (iperf server)
This is weird, throughput is lower and only grows slowly while latency stays flat until a spike at the test end.
Probably some broken Wifi buffering… I’m hoping to see some make-wifi-fast progress on the Turris.
Test 1:
------------------------------------------------------------
Client connecting to 10.30.12.158, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[ 3] local 10.30.12.1 port 42524 connected with 10.30.12.158 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 5.0 sec 27.1 MBytes 45.5 Mbits/sec
[ 3] 5.0-10.0 sec 50.9 MBytes 85.4 Mbits/sec
[ 3] 10.0-15.0 sec 112 MBytes 188 Mbits/sec
[ 3] 15.0-20.0 sec 166 MBytes 279 Mbits/sec
[ 3] 20.0-25.0 sec 233 MBytes 391 Mbits/sec
[ 3] 25.0-30.0 sec 244 MBytes 410 Mbits/sec
[ 3] 30.0-35.0 sec 230 MBytes 386 Mbits/sec
[ 3] 35.0-40.0 sec 232 MBytes 389 Mbits/sec
[ 3] 40.0-45.0 sec 227 MBytes 381 Mbits/sec
[ 3] 45.0-50.0 sec 212 MBytes 356 Mbits/sec
[ 3] 50.0-55.0 sec 213 MBytes 357 Mbits/sec
[ 3] 55.0-60.0 sec 213 MBytes 358 Mbits/sec
[ 3] 0.0-60.0 sec 2.11 GBytes 302 Mbits/sec
Test 2:
------------------------------------------------------------
Client connecting to 10.30.12.158, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[ 3] local 10.30.12.1 port 42526 connected with 10.30.12.158 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 5.0 sec 19.6 MBytes 32.9 Mbits/sec
[ 3] 5.0-10.0 sec 19.5 MBytes 32.7 Mbits/sec
[ 3] 10.0-15.0 sec 20.1 MBytes 33.8 Mbits/sec
[ 3] 15.0-20.0 sec 29.9 MBytes 50.1 Mbits/sec
[ 3] 20.0-25.0 sec 33.1 MBytes 55.6 Mbits/sec
[ 3] 25.0-30.0 sec 34.0 MBytes 57.0 Mbits/sec
[ 3] 30.0-35.0 sec 34.5 MBytes 57.9 Mbits/sec
[ 3] 35.0-40.0 sec 46.6 MBytes 78.2 Mbits/sec
[ 3] 40.0-45.0 sec 66.1 MBytes 111 Mbits/sec
[ 3] 45.0-50.0 sec 65.2 MBytes 109 Mbits/sec
[ 3] 50.0-55.0 sec 71.4 MBytes 120 Mbits/sec
[ 3] 55.0-60.0 sec 168 MBytes 283 Mbits/sec
[ 3] 0.0-60.0 sec 609 MBytes 85.1 Mbits/sec
...
64 bytes from 8.8.8.8: icmp_seq=1793 ttl=58 time=5.786 ms
64 bytes from 8.8.8.8: icmp_seq=1794 ttl=58 time=5.822 ms
64 bytes from 8.8.8.8: icmp_seq=1795 ttl=58 time=5.710 ms
64 bytes from 8.8.8.8: icmp_seq=1796 ttl=58 time=5.687 ms
64 bytes from 8.8.8.8: icmp_seq=1797 ttl=58 time=5.962 ms
64 bytes from 8.8.8.8: icmp_seq=1798 ttl=58 time=5.567 ms
64 bytes from 8.8.8.8: icmp_seq=1799 ttl=58 time=57.282 ms
64 bytes from 8.8.8.8: icmp_seq=1800 ttl=58 time=74.333 ms
64 bytes from 8.8.8.8: icmp_seq=1801 ttl=58 time=11.219 ms
64 bytes from 8.8.8.8: icmp_seq=1802 ttl=58 time=38.436 ms
64 bytes from 8.8.8.8: icmp_seq=1803 ttl=58 time=5.087 ms
64 bytes from 8.8.8.8: icmp_seq=1804 ttl=58 time=108.865 ms
64 bytes from 8.8.8.8: icmp_seq=1805 ttl=58 time=76.701 ms
64 bytes from 8.8.8.8: icmp_seq=1806 ttl=58 time=107.671 ms
64 bytes from 8.8.8.8: icmp_seq=1807 ttl=58 time=73.613 ms
64 bytes from 8.8.8.8: icmp_seq=1808 ttl=58 time=59.026 ms
64 bytes from 8.8.8.8: icmp_seq=1809 ttl=58 time=5.148 ms
64 bytes from 8.8.8.8: icmp_seq=1810 ttl=58 time=5.578 ms
64 bytes from 8.8.8.8: icmp_seq=1811 ttl=58 time=5.965 ms
64 bytes from 8.8.8.8: icmp_seq=1812 ttl=58 time=5.592 ms
...
I should probably do some proper testing with flent and a endpoint on the LAN instead of on the Turris itself…