Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Mar 2003 18:21:33 -0500
From:      Bosko Milekic <bmilekic@unixdaemons.com>
To:        Petri Helenius <pete@he.iki.fi>
Cc:        freebsd-current@FreeBSD.ORG, freebsd-net@FreeBSD.ORG
Subject:   Re: mbuf cache
Message-ID:  <20030304182133.A10561@unixdaemons.com>
In-Reply-To: <0e2b01c2e2a3$96fd3b40$932a40c1@PHE>; from pete@he.iki.fi on Wed, Mar 05, 2003 at 01:12:55AM %2B0200
References:  <0ded01c2e295$cbef0940$932a40c1@PHE> <20030304164449.A10136@unixdaemons.com> <0e1b01c2e29c$d1fefdc0$932a40c1@PHE> <20030304173809.A10373@unixdaemons.com> <0e2b01c2e2a3$96fd3b40$932a40c1@PHE>

next in thread | previous in thread | raw e-mail | index | archive | help

On Wed, Mar 05, 2003 at 01:12:55AM +0200, Petri Helenius wrote:
> > > Any comments on the high cpu consumption of mb_free? Or any other places
> > > where I should look to improve performance?
> >
> >   What do you mean "high cpu consumption?"  The common case of mb_free()
> >   is this:
> 
> According to profiling mb_free takes 18.9% of all time consumed in kernel and is
> almost double to next cpu consuming function. Since I´m looking how to optimize
> the system, it´s usually a good idea to start looking where most CPU is spent.
> 
> For example, I´m wondering if mbufs get unneccessarily freed and allocated or thrown
> around different buckets because of the tunables are wrong. I´m not saying that
> there must be something wrong with the code itself.
> 
> For example what does "in use" mean below: There is no way there is enough
> traffic on the system to allocate 7075 mbufs when this netstat -m was taken.
> 
> mbuf usage:
>         GEN cache:      0/0 (in use/in pool)
>         CPU #0 cache:   7075/8896 (in use/in pool)
>         CPU #1 cache:   1119/4864 (in use/in pool)
>         Total:          8194/13760 (in use/in pool)
>         Mbuf cache high watermark: 8192
>         Mbuf cache low watermark: 128
> 
> 
> Pete

  This does look odd... maybe there's a leak somewhere... does "in use"
  go back down to a much lower number eventually?  What kind of test are
  you running?  "in pool" means that that's the number in the cache
  while "in use" means that that's the number out of the cache
  currently being used by the system; but if you're telling me that
  there's no way usage could be that high while you ran the netstat,
  either there's a serious leak somewhere or I got the stats wrong
  (anyone else notice irregular stats?)

  Another thing I find odd about those stats is that you've set the high
  watermark to 8192, which means that in the next free, you should be
  moving buckets to the general cache... see if that's really
  happening...  The low watermark doesn't affect anything right now.

  Can you give me more details on the exact type of test you're running?
  Let's move this to -current instead of -current and -net please (feel
  free to trim the one you want), getting 3 copies of the same
  message all the time is kinda annoying. :-(

-- 
Bosko Milekic * bmilekic@unixdaemons.com * bmilekic@FreeBSD.org


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030304182133.A10561>