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