Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Jan 2004 09:56:59 +0100
From:      des@des.no (Dag-Erling =?iso-8859-1?q?Sm=F8rgrav?=)
To:        Peter Losher <Peter_Losher@isc.org>
Cc:        current@freebsd.org
Subject:   Re: 'kern.maxpipekva exceeded' messages...
Message-ID:  <xzpr7xvvvz8.fsf@dwp.des.no>
In-Reply-To: <200401191506.07789.Peter_Losher@isc.org> (Peter Losher's message of "Mon, 19 Jan 2004 15:06:07 -0800")
References:  <200401191506.07789.Peter_Losher@isc.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Peter Losher <Peter_Losher@isc.org> writes:
> In updating one of our authoritiative name servers to 5.2-REL, we enounte=
red=20
> after two days of running, kernel message like:
>
> kern.maxpipekva exceeded, please see tuning(7).
>
> appearing to the point to where you couldn't ssh into the box (because ss=
hd=20
> died w/ too many files opened).  I see so mention of kern.maxpipekva on t=
he=20
> tuning man page, and greping only finds kern.ipc entries.
>
> % sysctl -a | grep pipekva
> kern.ipc.maxpipekva: 10485760
> kern.ipc.maxpipekvawired: 5242880
> kern.ipc.pipekva: 131072
> kern.ipc.pipekvawired: 0
>
> Are they the same, and if so, what's are the guidelines for increasing th=
e=20
> number?

yes, the error message is incorrect.

here's an excerpt from comment in the kernel sources:

 * In order to limit the resource use of pipes, two sysctls exist:
 *
 * kern.ipc.maxpipekva - This is a hard limit on the amount of pageable
 * address space available to us in pipe_map.  Whenever the amount in use
 * exceeds half of this value, all new pipes will be created with size
 * SMALL_PIPE_SIZE, rather than PIPE_SIZE.  Big pipe creation will be limit=
ed
 * as well.  This value is loader tunable only.
 *
 * kern.ipc.maxpipekvawired - This value limits the amount of memory that m=
ay
 * be wired in order to facilitate direct copies using page flipping.
 * Whenever this value is exceeded, pipes will fall back to using regular
 * copies.  This value is sysctl controllable at all times.
 *
 * These values are autotuned in subr_param.c.
 *
 * Memory usage may be monitored through the sysctls
 * kern.ipc.pipes, kern.ipc.pipekva and kern.ipc.pipekvawired.

You can set these variables in /boot/loader.conf.

DES
--=20
Dag-Erling Sm=F8rgrav - des@des.no



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