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

Reply via email to