|
||||||||||
On Tue, 2005-06-28 at 08:27 +1000, ? ? wrote: > On 6/28/05, Rolf Sommerhalder <rolf dot sommerhalder at alumni dot ethz dot ch> wrote: > > My generic-PC 1.2b8 runs as a filtering bridge on a 4 Mbit/s symmetric > > connection and after 3 days uptime shows in the syslog: > > /kernel: All mbufs exhausted, please see tuning(7). > > > > The bridge apparently still works, even though log outputs is severly > > limited to a few lines only (I had set it at 200 lines). > > > > output of 'netstat -m' is: > > > > $ netstat -m > > 9468/9536/9536 mbufs in use (current/peak/max): > > 100 mbufs allocated to data > > 9368 mbufs allocated to packet headers > > 69/198/2384 mbuf clusters in use (current/peak/max) > > 2780 Kbytes allocated to network (38% of mb_map in use) > > 46 requests for memory denied > > 0 requests for memory delayed > > 6 calls to protocol drain routines > > > > Any hints of ehat I should try? (If needed, I can compile the kernel and > > produce a new custom image, no problem.) > > > > Rolf > > > > You need to up the max number of network memory buffers, using: > > sysctl -w kern.ipc.nmbclusters=X > > For a value for X, considering memory and usage of the machine, here > is the relevant bit from tuning(7): > kern.ipc.nmbclusters may be adjusted to increase the number of network > mbufs the system is willing to allocate. Each cluster represents approx- > imately 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 approximately 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 set kern.ipc.nmbclusters to > 32768. We recommend values between 1024 and 4096 for machines with mod- > erates amount of memory, and between 4096 and 32768 for machines with > greater amounts of memory. 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 clus- > ter use. Older versions of FreeBSD do not have this tunable and require > that the kernel config(8) option NMBCLUSTERS be set instead. > > ie: it depends what you're using it for and how much memory it has. Does anyone have a recommended value for network buffers on a wrap board with 64MB of memory? > > --g'luck > gm > > --------------------------------------------------------------------- > To unsubscribe, e-mail: m0n0wall dash unsubscribe at lists dot m0n0 dot ch > For additional commands, e-mail: m0n0wall dash help at lists dot m0n0 dot ch > |