On Tue, Jan 21, 2020 at 09:17:20PM +0000, Tom Smyth wrote: > in testing tap(4) performance on the same box with the following config > using claudios userlandbridge (tbridge) in between two tap interfaces > each tap was also added their own standard bridge(4) along with 1 physical > interface. > > iperf3client--ix0--bridge0--tap0--tbridge--tap1--bridge1--ix1---iperf3svr > > with a 1socket 2 core system that gives 3Gb/s we got the following > performance > > tbridge -t gave 557Mb/s TCP throughput > > btw (tbridge -t did not stop after using ^C or kill > but did respond to kill -s SIGKILL )
I forgot to mark the signals to interrupt read instead of restart. So you need another packet to arrive to exit the loop. You can add siginterrupt(SIGTERM, 1); siginterrupt(SIGINT, 1); siginterrupt(SIGHUP, 1); before the signal() calls to install the signal handler and then ^C will work. > tbridge -s gave 455Mb/s TCP throughput > > tbridge -p gave 448Mb/s TCP throughput > > tbridge -k gave 458mb/s TCP througput > > im going to try this again with more CPUs as the workload of forwarding in > this box involves 3 bridges in series. > > I will also try with the tpmr(4) driver > so something about OpenVPN has a bottleneck that reduces performance > by a factor of 3 -4x > Surprised by the 20% better performance of the threaded version. I wonder if the single threaded version max out the performance of a single CPU. My tests running tcpbench just between two interfaces show no measurable performance difference between the different modes (for either tun or tap). -- :wq Claudio