Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Nov 1997 11:08:53 -0800
From:      David Greenman <dg@root.com>
To:        "Gregory, Scott, SrA, SAF/AADXT" <gregorys@af.pentagon.mil>
Cc:        "'freebsd-questions@freebsd.org'" <freebsd-questions@FreeBSD.ORG>
Subject:   Re: Mbuf allocation or lack there of 
Message-ID:  <199711221908.LAA07120@implode.root.com>
In-Reply-To: Your message of "Thu, 20 Nov 1997 09:15:32 EST." <A1D69BFE912ED111A5BB00A0C95DDDDCA1E6@afp1.hq.af.mil> 

next in thread | previous in thread | raw e-mail | index | archive | help
>I submitted a question to the group a couple of weeks ago about my
>system crashing with a " /kernel: Out of mbuf clusters - increase
>maxusers! " error.  Taking a suggestion from someone on this mailing
>list I increased my max users to "maxusers        128"  and added
>"options         NMBCLUSTERS=4096".  This kernel has been running for 14
>days and I have again gotten the " /kernel: Out of mbuf clusters -
>increase maxusers! " error, however my system did not reboot.
>
>The output of netstat -m is:
>
>715 mbufs in use:
>        351 mbufs allocated to data
>        357 mbufs allocated to packet headers
>        6 mbufs allocated to protocol control blocks
>        1 mbufs allocated to socket names and addresses
>334/1136 mbuf clusters in use
>2361 Kbytes allocated to network (32% in use)
>0 requests for memory denied
>0 requests for memory delayed
>0 calls to protocol drain routines
>
>Yesterday this was running 80-90% in use.  The number of clusters in use
>continues to increase ( xxx/1136 ).  Yesterday it only had 984 clusters
>which increaseed to 1026 which increased to the current 1136.  When I
>was running a slightly modified generic kernel netstat -m ouput was:
>
>714 mbufs in use:
>        685 mbufs allocated to data
>        23 mbufs allocated to packet headers
>        5 mbufs allocated to protocol control blocks
>        1 mbufs allocated to socket names and addresses
>683/2318 mbuf clusters in use
>4725 Kbytes allocated to network (30% in use)
>0 requests for memory denied
>0 requests for memory delayed
>0 calls to protocol drain routines
>
>As you can see the mbuf clusters in use was up to 2318.

   You're misinterpreting the numbers. The second number is the maximum that
have been in-use since system startup. The first number is the current number
in use.

>1.  Does the system dynamically allocate mbuf clusters as it needs them?

   Yes, up to the limit of NMBCLUSTERS.

>2.  Is there any way to find out what the maximum allocation will be?

   If you've specified the NMBCLUSTERS option, then it will be that value.
Otherwise, it is a formula based on maxusers.

>3.  Did I get the "Out of mbuf clusters" error yesterday because the
>system couldn't allocate clusters fast enough or because it reached the
>hard limit?

   It reached the hard limit. This is bad and can result in the system
crashing.

>4.  Are my kernel settings sufficient?

   Apparantly not. You need to specify an even larger amount for NMBCLUSTERS,
but beware that they each take 2K of RAM.

>I am running a web server with 2.2.2-R on a PPro 200, 96 meg RAM.  I am
>also running Apache 1.2.4 which at times has 200+ clients connected.

   You have a (very) busy machine. 96MB of RAM is probably not enough.

-DG

David Greenman
Core-team/Principal Architect, The FreeBSD Project



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