Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Sep 2014 11:11:04 -0700
From:      Rumen Telbizov <telbizov@gmail.com>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        Tom Elite <qingli@freebsd.org>, "freebsd-stable@freebsd.org" <freebsd-stable@freebsd.org>, "K. Macy" <kmacy@freebsd.org>
Subject:   Re: FreeBSD 10 network performance problems
Message-ID:  <CAENR%2B_UW-POPbSgsqZA-pUV0Be4AABUOEfTZqbTbJi3OZR5sTQ@mail.gmail.com>
In-Reply-To: <CAJ-VmomJckhbJP4Ks_eiomNeSVaMH9g62%2BBimBZcWpMooSA%2BDQ@mail.gmail.com>
References:  <CAENR%2B_VDVvnY0zWKVXHOjz2vWw27s%2ByVrz9ZFokZ=p6P6oFNvw@mail.gmail.com> <1411259605.674669006.339g4pd4@frv35.fwdcdn.com> <CAENR%2B_UwjMGoOqKkhCeL4zmLnSgTiABoeR-7x71MBvOnCF8z%2BA@mail.gmail.com> <CAHM0Q_MXmn2P=vfFgaj5pZSqcTSm3h%2BKPAotc4K_8qpQUFh1dQ@mail.gmail.com> <CAJ-VmomJckhbJP4Ks_eiomNeSVaMH9g62%2BBimBZcWpMooSA%2BDQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Thank you all for the answers and directions.

I tried all of the suggested changes to sysctl.conf and loader.conf
settings above - they made no difference whatsoever. I believe they might
help in certain situations but will improve things marginally. What I am
dealing with is a pretty hard and sudden drop of performance due to lock
contention.

Adrian:
What you're saying makes sense. If we can avoid the locking completely,
this problem might go away. I'll see if I can get some help and try to
tackle this challenge.

Cheers,
Rumen Telbizov

On Sun, Sep 21, 2014 at 11:29 PM, Adrian Chadd <adrian@freebsd.org> wrote:

> Hi!
>
> On 21 September 2014 15:08, K. Macy <kmacy@freebsd.org> wrote:
> > What you're dealing with is hardly an edge case. Most people don't need
> to
> > push more than a couple of Gbps in production.
> >
> > Flowtable is hardly "untested." However, it has been a source of friction
> > at times because it can be somewhat brittle, having limits on the number
> of
> > cache entries that it can store that are frequently too low for people
> with
> > very large numbers of active flows. Without raising this limit
> > substantially these systems will fail in a rather spectacular fashion.
> > Additionally, flowtable was not written with the intent of being a
> routing
> > cache. It was developed to support stateful multipath routing for load
> > balancing. In its current incarnation, stripped of much of the code for
> its
> > initial purpose, it's really just a band-aid around locking problems in
> > routing. That said, the handful of commercial users of FreeBSD that do
> have
> > large amounts of traffic (10s of Gbps) per system that I personally know
> of
> > all have flowtable enabled.
> >
> > Unfortunately, at least in terms of what is in HEAD, little has been done
> > to fix the contention that flowtable works around. For your purposes the
> > response that Adrian gave you is the closest to "optimal."
>
> Gleb and I spent a bunch of time late last year and early this year
> finding and fixing a lot of the corner cases with Flowtable handling.
>
> I'm pretty sure that it'll behave predictably and reliably for people
> now. If it doesn't then please file PRs. It's no longer some corner of
> the codebase that isn't well understood. At least two people besides
> the author (Gleb and I) understand what it is, how it works and how it
> ties into things.
>
> What's missing is someone sitting down and adding flowtable support to
> the rest of the forwarding path(s). It shouldn't be too hard - as long
> as you have an mbuf that has the IPv4/IPv6 header setup as that's what
> flowtable currently expects when doing lookups - but it has to be
> done.
>
> So I thoroughly recommend someone who has the test setup and the
> desire to do so and post results. I have enough equipment now to test
> this out and develop it but I'm really busy doing work, wireless RSS
> stuff. So I just don't have the spare cycles to do it.
>
> I do think it'll be a pretty simple task.
>
> In theory - once you have the flowtable code working correctly in the
> forwarding path you shouldn't see any rtentry lock contention except
> during route changes (which will invalidate flowtable entries and
> cause normal routing table lookups until the flowtable has all the
> route entries in question.)
>
>
>
> -a
>



-- 
Rumen Telbizov
Unix Systems Administrator <http://telbizov.com>;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAENR%2B_UW-POPbSgsqZA-pUV0Be4AABUOEfTZqbTbJi3OZR5sTQ>