Re: 'kern.maxpipekva exceeded' messages...

From: Dag-Erling Smørgrav <des_at_des.no>
Date: Tue, 20 Jan 2004 09:56:59 +0100
Peter Losher <Peter_Losher_at_isc.org> writes:
> In updating one of our authoritiative name servers to 5.2-REL, we enountered 
> 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 sshd 
> died w/ too many files opened).  I see so mention of kern.maxpipekva on the 
> 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 the 
> 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 limited
 * as well.  This value is loader tunable only.
 *
 * kern.ipc.maxpipekvawired - This value limits the amount of memory that may
 * 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
-- 
Dag-Erling Smørgrav - des_at_des.no
Received on Mon Jan 19 2004 - 23:57:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:39 UTC