From owner-freebsd-questions Sat Nov 22 11:07:02 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id LAA19678 for questions-outgoing; Sat, 22 Nov 1997 11:07:02 -0800 (PST) (envelope-from owner-freebsd-questions) Received: from implode.root.com (implode.root.com [198.145.90.17]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id LAA19672 for ; Sat, 22 Nov 1997 11:06:56 -0800 (PST) (envelope-from root@implode.root.com) Received: from implode.root.com (localhost [127.0.0.1]) by implode.root.com (8.8.5/8.8.5) with ESMTP id LAA07120; Sat, 22 Nov 1997 11:08:53 -0800 (PST) Message-Id: <199711221908.LAA07120@implode.root.com> To: "Gregory, Scott, SrA, SAF/AADXT" cc: "'freebsd-questions@freebsd.org'" Subject: Re: Mbuf allocation or lack there of In-reply-to: Your message of "Thu, 20 Nov 1997 09:15:32 EST." From: David Greenman Reply-To: dg@root.com Date: Sat, 22 Nov 1997 11:08:53 -0800 Sender: owner-freebsd-questions@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk >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