mbuf tuning

Maxim Konovalov maxim at macomnet.ru
Mon Jan 19 02:33:56 PST 2004

On Mon, 19 Jan 2004, 19:22+0900, CHOI Junho wrote:

> From: Mike Silbersack <silby at silby.com>
> Subject: Re: mbuf tuning
> Date: Mon, 19 Jan 2004 01:12:08 -0600 (CST)
> > There are no good guidelines other than "don't set it too high."  Andre
> > and I have talked about some ideas on how to make mbuf usage more dynamic,
> > I think that he has something in the works.  But at present, once you hit
> > the wall, that's it.
> >
> > One way to reduce mbuf cluster usage is to use sendfile where possible.
> > Data sent via sendfile does not use mbuf clusters, and is more memory
> > efficient.  If you run 5.2 or above, it's *much* more memory efficient,
> > due to change Alan Cox recently made.  Apache 2 will use sendfile by
> > default, so if you're running apache 1, that may be one reason for an
> > upgrade.
> I am using custom version of thttpd. It allocates mmap() first(builtin
> method of thttpd), and it try to use sendfile() if mmap() fails(out of
> mmap memory). It really works good in normal status but the problem is
> that sendfile buffer is also easy to flood. I need more sendfile
> buffers but I don't know how to increase sendfile buffers either(I
> think it's hidden sysctl but it was more difficult to tune than
> nmbclusters). With higher traffic, thttpd sometimes stuck at "sfbufa"
> status when I run top(I guess it's "sendfile buffer allocation"
> status).

man 2 sendfile, man 7 tuning are a good start.

In 5.2 you can monitor sendfile buffers usage via kern.ipc.nsfbufs*
sysctls or netstat(1).

Maxim Konovalov, maxim at macomnet.ru, maxim at FreeBSD.org

More information about the freebsd-performance mailing list