poor throughput with tinc
Anil Moris
anilmoris at gmail.com
Fri Nov 28 08:54:04 CET 2014
Hi,
I am testing tinc for a very large scale deployment.
I am using tinc-1.1 for testing.
test results below are for tinc in switch mode. all other settings are
default. test is performed in LAN env. 2 different hosts.
I am getting only 24.6 Mbits/sec when tinc is used.
without tinc on the same hosts/link I get 95 to 100 Mbits/sec using iperf.
Over Tinc:
iperf -c 192.168.9.9 -b 100m -l 32k -w 128k
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 29.4 MBytes 24.6 Mbits/sec
[ 3] Sent 940 datagrams
[ 3] Server Report:
[ 3] 0.0-10.4 sec 6.72 MBytes 5.40 Mbits/sec 22.602 ms 724/ 939 (77%)
[ 3] 0.0-10.4 sec 1 datagrams received out-of-order
Without Tinc:
iperf -c 10.206.131.254 -b 100m -l 32k -w 128k
[ 3] local 10.172.241.254 port 53809 connected with 10.206.131.254 port
5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 119 MBytes 100 Mbits/sec
[ 3] Sent 3817 datagrams
[ 3] Server Report:
[ 3] 0.0-10.3 sec 51.5 MBytes 42.2 Mbits/sec 8.436 ms 2168/ 3817 (57%)
Using Tinc:
iperf -c 192.168.9.9 -u -b 100M
[ 3] local 192.168.9.1 port 58384 connected with 192.168.9.9 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 33.5 MBytes 28.1 Mbits/sec
[ 3] Sent 23897 datagrams
read failed: Connection refused
[ 3] WARNING: did not receive ack of last datagram after 5 tries.
Without Tinc:
iperf -c 10.206.131.254 -u -b 100M
[ 3] local 10.172.241.254 port 56376 connected with 10.206.131.254 port
5001
read failed: Connection refused
[ 3] WARNING: did not receive ack of last datagram after 1 tries.
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 114 MBytes 95.4 Mbits/sec
[ 3] Sent 81124 datagrams
I have disabled cipher and digest but has no impact. I also tried with tcp
only and increasing MTU to 1500 without any success.
please let me know if I am missing something.
I used tinc-1.0.19 and tinc-1.0.24 with same results. With tinc-1.1 I see
that the CPU consumption is reduced from 95% (with tinc-1.0) to 45% (with
tinc-1.1)
Any help or pointers to increase the throughput will be much appreciated.
Thanks,
Anil
Here are some additional details on server for the first test above.
iperf -s -u -l 32k -w 128k -i 1
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 32768 byte datagrams
UDP buffer size: 256 KByte (WARNING: requested 128 KByte)
------------------------------------------------------------
[With Tinc]
[ 3] local 192.168.9.9 port 5001 connected with 192.168.9.1 port 37737
[ ID] Interval Transfer Bandwidth Jitter Lost/Total
Datagrams
[ 3] 0.0- 1.0 sec 736 KBytes 6.03 Mbits/sec 14.079 ms 12/ 35 (34%)
[ 3] 1.0- 2.0 sec 0.00 Bytes 0.00 bits/sec 14.079 ms 0/ 0 (-nan%)
[ 3] 2.0- 3.0 sec 0.00 Bytes 0.00 bits/sec 14.079 ms 0/ 0 (-nan%)
[ 3] 3.0- 4.0 sec 0.00 Bytes 0.00 bits/sec 14.079 ms 0/ 0 (-nan%)
[ 3] 4.0- 5.0 sec 0.00 Bytes 0.00 bits/sec 14.079 ms 0/ 0 (-nan%)
[ 3] 5.0- 6.0 sec 0.00 Bytes 0.00 bits/sec 14.079 ms 0/ 0 (-nan%)
[ 3] 6.0- 7.0 sec 0.00 Bytes 0.00 bits/sec 14.079 ms 0/ 0 (-nan%)
[ 3] 7.0- 8.0 sec 1.38 MBytes 11.5 Mbits/sec 21.598 ms 713/ 757 (94%)
[ 3] 8.0- 9.0 sec 1.88 MBytes 15.7 Mbits/sec 21.999 ms 0/ 60 (0%)
[ 3] 9.0-10.0 sec 1.88 MBytes 15.7 Mbits/sec 22.190 ms 0/ 60 (0%)
[ 3] 0.0-10.4 sec 6.72 MBytes 5.40 Mbits/sec 22.603 ms 724/ 939 (77%)
[ 3] 0.0-10.4 sec 1 datagrams received out-of-order
read failed: Connection refused
[ Without tinc ]
[ 4] local 10.206.131.254 port 5001 connected with 10.172.241.254 port
53809
[ 4] 0.0- 1.0 sec 11.4 MBytes 95.9 Mbits/sec 0.281 ms 0/ 366 (0%)
[ 4] 1.0- 2.0 sec 11.4 MBytes 95.9 Mbits/sec 0.412 ms 1/ 367
(0.27%)
[ 4] 2.0- 3.0 sec 11.4 MBytes 95.9 Mbits/sec 1.136 ms 0/ 366 (0%)
[ 4] 3.0- 4.0 sec 3.16 MBytes 26.5 Mbits/sec 0.332 ms 264/ 365 (72%)
[ 4] 4.0- 5.0 sec 2.47 MBytes 20.7 Mbits/sec 0.876 ms 312/ 391 (80%)
[ 4] 5.0- 6.0 sec 2.84 MBytes 23.9 Mbits/sec 0.505 ms 287/ 378 (76%)
[ 4] 6.0- 7.0 sec 2.00 MBytes 16.8 Mbits/sec 0.420 ms 309/ 373 (83%)
[ 4] 7.0- 8.0 sec 2.12 MBytes 17.8 Mbits/sec 0.446 ms 321/ 389 (83%)
[ 4] 8.0- 9.0 sec 2.16 MBytes 18.1 Mbits/sec 0.259 ms 303/ 372 (81%)
[ 4] 9.0-10.0 sec 2.12 MBytes 17.8 Mbits/sec 0.794 ms 321/ 389 (83%)
[ 4] 0.0-10.3 sec 51.5 MBytes 42.2 Mbits/sec 8.437 ms 2168/ 3817 (57%)
Debug output: of tincd when above is run.
Received packet of 1450 bytes from server (10.172.241.254 port 655)
Writing packet of 1450 bytes to Linux tun/tap device (tap mode)
Received packet of 96 bytes from server (10.172.241.254 port 655)
Writing packet of 96 bytes to Linux tun/tap device (tap mode)
Got REQ_KEY from server (10.172.241.254 port 655): 15 server hostA 21
.....key is removed from here.... and for lines below ....
Received packet of 1450 bytes from server (10.172.241.254 port 655)
Writing packet of 1450 bytes to Linux tun/tap device (tap mode)
Received packet of 96 bytes from server (10.172.241.254 port 655)
Writing packet of 96 bytes to Linux tun/tap device (tap mode)
Received packet of 1450 bytes from server (10.172.241.254 port 655)
Writing packet of 1450 bytes to Linux tun/tap device (tap mode)
Received packet of 96 bytes from server (10.172.241.254 port 655)
Writing packet of 96 bytes to Linux tun/tap device (tap mode)
Received packet of 1450 bytes from server (10.172.241.254 port 655)
Writing packet of 1450 bytes to Linux tun/tap device (tap mode)
Received packet of 1450 bytes from server (10.172.241.254 port 655)
Writing packet of 1450 bytes to Linux tun/tap device (tap mode)
Received packet of 96 bytes from server (10.172.241.254 port 655)
Writing packet of 96 bytes to Linux tun/tap device (tap mode)
Got REQ_KEY from server (10.172.241.254 port 655): 15 server hostA 21
Received packet of 1450 bytes from server (10.172.241.254 port 655)
Writing packet of 1450 bytes to Linux tun/tap device (tap mode)
Received packet of 96 bytes from server (10.172.241.254 port 655)
Writing packet of 96 bytes to Linux tun/tap device (tap mode)
Got REQ_KEY from server (10.172.241.254 port 655): 15 server hostA 21
Received packet of 1450 bytes from server (10.172.241.254 port 655)
Writing packet of 1450 bytes to Linux tun/tap device (tap mode)
Received packet of 96 bytes from server (10.172.241.254 port 655)
Writing packet of 96 bytes to Linux tun/tap device (tap mode)
Got REQ_KEY from server (10.172.241.254 port 655): 15 server hostA 21
Received packet of 1450 bytes from server (10.172.241.254 port 655)
Writing packet of 1450 bytes to Linux tun/tap device (tap mode)
Received packet of 96 bytes from server (10.172.241.254 port 655)
Writing packet of 96 bytes to Linux tun/tap device (tap mode)
Got REQ_KEY from server (10.172.241.254 port 655): 15 server hostA 21
Received packet of 1450 bytes from server (10.172.241.254 port 655)
Writing packet of 1450 bytes to Linux tun/tap device (tap mode)
Received packet of 96 bytes from server (10.172.241.254 port 655)
Writing packet of 96 bytes to Linux tun/tap device (tap mode)
Got REQ_KEY from server (10.172.241.254 port 655): 15 server hostA 21
Received packet of 1450 bytes from server (10.172.241.254 port 655)
Writing packet of 1450 bytes to Linux tun/tap device (tap mode)
Received packet of 96 bytes from server (10.172.241.254 port 655)
Writing packet of 96 bytes to Linux tun/tap device (tap mode)
Got REQ_KEY from server (10.172.241.254 port 655): 15 server hostA 21
Received packet of 1450 bytes from server (10.172.241.254 port 655)
Writing packet of 1450 bytes to Linux tun/tap device (tap mode)
Received packet of 96 bytes from server (10.172.241.254 port 655)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.tinc-vpn.org/pipermail/tinc/attachments/20141128/fd90e821/attachment.html>
More information about the tinc
mailing list