Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Jul 2002 12:32:09 -0700 (PDT)
From:      Jeff Jirsa <jeff@boris.st.hmc.edu>
To:        "Balaji, Pavan" <pavan.balaji@intel.com>
Cc:        "'James Snow'" <snow@teardrop.org>, <ntai@mac.com>, <freebsd-questions@FreeBSD.ORG>
Subject:   RE: Number of mbuf clusters (NMBCLUSTERS)
Message-ID:  <20020724122351.T71540-100000@boris.st.hmc.edu>
In-Reply-To: <3D386AED1B47D411A94300508B11F18703BC5C25@fmsmsx116.fm.intel.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 24 Jul 2002, Balaji, Pavan wrote:

>
> You can increase the maximum number of clusters in /usr/src/sys/sys/sysctl.h
> and recompile the kernel. But make sure that you have a stable kernel image
> ready, just in case you increase this value so much that your kernel doesn't
> boot ;)
>
> I guess the default value is around 9, while for 256MB mem, you can go upto
> maybe 10000 clusters.

That's questionable advice. Reading the tuning(7) man page:


    NMBCLUSTERS may be adjusted to increase the number of network mbufs the
    system is willing to allocate.  Each cluster represents approximately 2K
    of memory, so a value of 1024 represents 2M of kernel memory reserved for
    network buffers.  You can do a simple calculation to figure out how many
    you need.  If you have a web server which maxes out at 1000 simultaneous
    connections, and each connection eats a 16K receive and 16K send buffer,
    you need approximate 32MB worth of network buffers to deal with it.  A
    good rule of thumb is to multiply by 2, so 32MBx2 = 64MB/2K = 32768.  So
    for this case you would want to se NMBCLUSTERS to 32768.  We recommend
    values between 1024 and 4096 for machines with moderates amount of mem-
    ory, and between 4096 and 32768 for machines with greater amounts of mem-
    ory.  Under no circumstances should you specify an arbitrarily high value
    for this parameter, it could lead to a boot-time crash.  The -m  option to
    netstat(1) may be used to observe network cluster use.

Figure out how many connections you'll deal with, and then increase the
value accordingly, rather than simply guessing and possibly wasting
memory you may want to use elsewhere. I'd also recommend modifying your
kernel config file rather than sysctl.h, and then rebuilding.

- Jeff






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




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