Update the kernel configuration section to mention specific characteristics

of sf_buf depletion while using sendfile(2) and tuning NSFBUFS.  This will
hopefully be one of three places in Google's DB that will match sfbufa.

Approved by:	roam
This commit is contained in:
Sean Chittenden 2003-03-04 19:17:57 +00:00
parent a0436c0236
commit 0e78257234
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=16196

View file

@ -1678,12 +1678,25 @@ kern.maxfiles: 2088 -> 5000</screen>
will require you to use the <option>NMBCLUSTERS</option> kernel
&man.config.8; option.</para>
<para>Under <emphasis>extreme</emphasis> circumstances, you may need
to modify <varname>kern.ipc.nsfbufs</varname> sysctl. This sysctl
variable controls the number of filesystem buffers &man.sendfile.2;
is allowed to use for performing it's work. This parameter nominally
scales with <varname>kern.maxusers</varname> so you should not need
to modify it.</para>
<para>For busy servers that make extensive use of the
&man.sendfile.2; system call, it may be necessary to increase
the number of &man.sendfile.2; buffers via the
<option>NSFBUFS</option> kernel configuration option. A
common indicator that this parameter needs to be adjusted is
when processes are seen in the <errorname>sfbufa</errorname>
state. The sysctl variable
<varname>kern.ipc.nsfbufs</varname> is a read-only glimpse at
the kernel configured variable. This parameter nominally
scales with <varname>kern.maxusers</varname>, however it may
be necessary to tune accordingly.</para>
<important>
<para>Even though a socket has been marked as non-blocking,
calling &man.sendfile.2; on the non-blocking socket may
result in the &man.sendfile.2; call blocking until enough
<literal>struct sf_buf</literal>'s are made
available.</para>
</important>
<sect3>
<title><varname>net.inet.ip.portrange.*</varname></title>