Re: Performance issues with vnet jails + epair + bridge

From: Paul Procacci <pprocacci_at_gmail.com>
Date: Thu, 12 Sep 2024 17:25:32 UTC
On Thu, Sep 12, 2024 at 1:16 PM Sad Clouds <cryintothebluesky@gmail.com>
wrote:

> Hi, I'm using FreeBSD-14.1 and on this particular system I only have a
> single physical network interface, so I followed instructions for
> networking vnet jails via epair and bridge, e.g.
>
> devel
> {
>         vnet;
>         vnet.interface = "e0b_devel";
>         exec.prestart += "/jails/jib addm devel genet0";
>         exec.poststop += "/jails/jib destroy devel";
> }
>
> The issue is bulk TCP performance throughput between this jail and the
> host is quite poor, with one CPU spinning 100% in kernel and others
> sitting mostly idle.
>
> It seems there is some lock contention somewhere, but I'm not sure if
> this is around vnet, epair or bridge subsystems. Are there
> other alternatives for vnet jails? Can anyone recommend specific
> deployment scenarios? I've seen references to netgraph which could be
> used with jails. Does it have better performance and scalability and
> could replace epair and bridge combination?
>
> Thanks.
>
>

You need to define `poor'.
You need to show `top -SH` while the `problem' occurs.

My guess is packets are getting shuttled between a global taskqueue thread.
This is the default, or at least I'm not aware of this default being
changed.
You can try enabling `options RSS' in your kernel as this would introduce a
taskqueue worker thread per cpu.

~Paul

-- 
__________________

:(){ :|:& };: