Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Aug 1999 02:52:52 +1000
From:      Greg Black <gjb-freebsd@gba.oz.au>
To:        vaevictus@socket.net
Cc:        freebsd-hardware@FreeBSD.ORG
Subject:   Re: Problems with a pair of 3c905b's 
Message-ID:  <19990811165252.8209.qmail@alice.gba.oz.au>
In-Reply-To: <37b042f0.7cfd.0@socket.net>  of Tue, 10 Aug 1999 10:19:12
References:  <37b042f0.7cfd.0@socket.net> 

next in thread | previous in thread | raw e-mail | index | archive | help
vaevictus@socket.net writes:

> I've got a 3.2 box running squid on a Internet routed network and a separate
> local network, used by the customers of the ISP I work for.  It probably deals
> with a significant amount of traffic.  Since I brought the machine to life,
> I've had virtually no problems.  However, occasionally, the server will loose
> it's network connectivity.
> The console had panic messages of "kernel: xl0: no memory for rx list -- packet
> dropped!" for xl0 and xl1.
> 
> Upon reboot, the system would be fine.  I fear that this has happened before,
> and will occur again.  In the /var/log/messages archive, I located what looked
> like the beginning of the problem, "kernel: Out of mbuf clusters - adjust NMBCLUSTERS
> or increase maxusers".  I'm running the generic 3.2 kernel which has maxusers
> 32, which i thought would be more than sufficient.
> NMBCLUSTERS I'm not sure of.

I've just spent a day watching a 3.2 box panic ten times in a
row with this and have implemented a fix which has passed the
repeatable crash provoking test several times now.  I was using
pax to copy a filesystem via NFS from this box and when I
watched it with systat -mbufs, I found that it actually needed
around 1700 mbufs out of the 1024 available to do the job.

It turns out that increasing maxusers to 64 does give useful
increases in various kernel resources, but in fact that was not
enough to fix this problem, as it only lifts nmbclusters to 1536
which was still not enough for me.  So I have put the following
line in my kernel config file as well as changing maxusers to 64:

	options	NMBCLUSTERS=4096

You can check the current value by "sysctl kern.ipc.nmbclusters"
but you can only change the value by changing the kernel config,
building and installing a new kernel and rebooting.

As for *why* it needed so many mbufs, I have no idea -- the box
on the receiving end used less than 200, although it was writing
the data direct to tape so that may have made a difference.  But
the box that was crashing was able to receive the data to disk
from another non-FreeBSD box over NFS with no problems, which is
why I was surprised when it crashed on sending it.  I have no
theories about this, and no time to follow it up right now.

-- 
Greg Black -- <gjb@acm.org>



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




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