aboutsummaryrefslogtreecommitdiff
path: root/zh_CN.GB2312/books/handbook/config
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2005-08-28 17:45:15 +0000
committerXin LI <delphij@FreeBSD.org>2005-08-28 17:45:15 +0000
commitb8027a6a72999cf64c7e48d59f47329ca2ae5c33 (patch)
tree3fecb4ce1f84dcdee1148471ea06429d7898d4dd /zh_CN.GB2312/books/handbook/config
parent91d23388490eb45f7a8983cd724a97c06dc96f79 (diff)
Notes
Diffstat (limited to 'zh_CN.GB2312/books/handbook/config')
-rw-r--r--zh_CN.GB2312/books/handbook/config/chapter.sgml133
1 files changed, 102 insertions, 31 deletions
diff --git a/zh_CN.GB2312/books/handbook/config/chapter.sgml b/zh_CN.GB2312/books/handbook/config/chapter.sgml
index 82b9f9405d..bf79bc2e55 100644
--- a/zh_CN.GB2312/books/handbook/config/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/config/chapter.sgml
@@ -1,7 +1,7 @@
<!--
The FreeBSD Chinese Documentation Project
- Original Revision: 1.206
+ Original Revision: 1.212
$FreeBSD$
-->
@@ -213,7 +213,7 @@
<itemizedlist>
<listitem><para>rc.conf:</para>
-<programlisting> . rc.conf.site
+<programlisting> . /etc/rc.conf.site
hostname="node15.example.com"
network_interfaces="fxp0 lo0"
ifconfig_fxp0="inet 10.1.1.1"</programlisting></listitem>
@@ -600,9 +600,7 @@ HOME=/var/log
</authorgroup>
</sect1info>
- <title>在 FreeBSD 5.X 下使用 rc</title>
-
- <indexterm><primary>rcNG</primary></indexterm>
+ <title>在 &os; 5.X 和更新版本中使用 rc</title>
<para>&os; 最近整合了 NetBSD 的 <filename>rc.d</filename>
系统以完成系统初始化。用户要注意 <filename>/etc/rc.d</filename>
@@ -669,7 +667,7 @@ sshd is running as pid 433.</screen>
<literal>SIGHUP</literal> 信号。
</para>
- <para><application>rcNG</application> 结构不仅仅是给网络服务提供的,
+ <para><filename>rc.d</filename> 系统不仅仅是供网络服务使用的,
它也给很多系统初始化提供服务。例如,处理 <filename>bgfsck</filename>
文件。当这个脚本执行的时候,它会输出下列信息:
</para>
@@ -709,8 +707,8 @@ sshd is running as pid 433.</screen>
<para>通过这种方法,系统管理员可以容易的控制系统而不用像其他一些
&unix; 操作系统一样要用 <quote>runlevels</quote> 来控制。</para>
- <para>&os;5.X 的附加信息: <filename>rc.d</filename> 系统可以在
- &man.rc.8; 和 &man.rc.subr.8; 手册页中找到。</para>
+ <para>更多关于 <filename>rc.d</filename> 系统的信息, 可以在
+ &man.rc.8; 和 &man.rc.subr.8; 联机手册中找到。</para>
</sect1>
<sect1 id="config-network-setup">
@@ -1468,8 +1466,9 @@ kern.maxfiles: 2088 -> 5000</screen>
</sect2info>
<title>只读的 &man.sysctl.8;</title>
- <para>有时想要修改只读的 &man.sysctl.8; 的值。
- 有时这不被推荐,有时也是不可避免的。</para>
+ <para>有时可能会需要修改某些只读的 &man.sysctl.8;
+ 的值。 尽管有时不得不这样做,
+ 但只有通过(重新)启动才能达到这样的目的。</para>
<para>例如一些膝上型电脑的 &man.cardbus.4;
设备不会探测内存范围,并且产生看似于这样的错误:</para>
@@ -1758,28 +1757,67 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
<primary><varname>kern.maxfiles</varname></primary>
</indexterm>
- <para><varname>kern.maxfiles</varname> 可以根据系统的需求加大或者减小。
- 这个变量指出了在系统上文件描述符的最大数量。当文件描述符表曼的时候,
- 用 <command>dmesg</command> 命令可以看到
+ <para><varname>kern.maxfiles</varname> 可以根据系统的需要适当增减。
+ 这个变量用于指定在系统中允许的文件描述符的最大数量。
+ 当文件描述符表满的时候,
<errorname>file: table is full</errorname>
- 将会在系统信息缓存里反复的出现。</para>
-
- <para>每个打开的文件、套接字、fifo 都使用一个描述符。
- 一个大规模的服务器很容易使用上千个文件描述符,
- 这取决于系统中同时运行着的服务的数量和类型。</para>
-
- <para>
- <varname>kern.maxfile</varname> 的默认值以系统配置文件中的
- <option>MAXUSERS</option> 选项来决定。<varname>kern.maxfiles</varname>
- 同 <option>MAXUSERS</option> 的值成比例的增长。编译一个自定义内核的时候,
- 按照您系统中用户的数量来设置这个值是个好主意。
- 从这个数字可以确定内核很多先前定义的限制。即使一台机器不会真有
- 256 个用户同时连接,所需要的资源也可能跟一个高负荷的 web
- 服务器差不多。
- </para>
+ 会在系统消息缓冲区中反复出现, 您可以使用
+ <command>dmesg</command> 命令来观察这一现象。</para>
+
+ <para>每个打开的文件、 套接字和管道, 都会占用一个文件描述符。
+ 在大型生产服务器上, 可能会轻易地用掉数千个文件描述符,
+ 具体用量取决于服务的类型和并行启动的服务数量。</para>
+
+ <para><varname>kern.maxfile</varname> 的默认值,
+ 是由您内核配置文件中的 <option>maxusers</option> 选项决定的。
+ <varname>kern.maxfiles</varname> 这个数值,
+ 会与 <option>maxusers</option> 成比例增减。
+ 当编译定制的内核时, 按照您系统的用途来修改这个值是个好主意。
+ 这个数字同时还决定内核的许多预设的限制值。 有时,
+ 尽管并不会真的有 256 个用户同时连接一台生产服务器,
+ 但对于高负载的 web 服务器而言, 却可能需要与之类似的资源。</para>
+
+ <para>从 &os;&nbsp;4.5 开始, 如果您明确地将
+ <literal>maxusers</literal> 设置为
+ <literal>0</literal>, 则系统会自动地根据硬件配置来确定这个值。<footnote>
+ <para>自动调整算法会将
+ <literal>maxusers</literal> 设置为与主存的数量一样,
+ 或者取其下限 32 或上限 384。</para>
+ </footnote>。 在 &os;&nbsp;5.X 和更高版本中, <literal>maxusers</literal>
+ 如果不指定的话, 就会取默认值 <literal>0</literal>。
+ 如果您正使用的是 &os; 4.5 之前的版本, 或者希望自行管理
+ <literal>maxusers</literal>, 则应配置一个不低于 4 的值,
+ 特别是使用 X Window System 或编译软件的时候。
+ 这样做的原因是, <literal>maxusers</literal>
+ 所决定的一个最为重要的表的尺寸会影响最大进程数,
+ 这个数值将是 <literal>20 + 16 *
+ maxusers</literal>。 因此如果将 <literal>maxusers</literal> 设置为 1,
+ 您就只能同时运行 36 个进程, 这还包括了 18
+ 个左右的系统引导时启动的进程, 以及 15 个左右的,
+ 在您启动 X Window System 时所引发的进程。 即使是简单的任务,
+ 如阅读联机手册, 也需要启动多至九个的进程, 用以过滤、
+ 解压缩, 并显示它。 将
+ <literal>maxusers</literal> 设为 64 将允许您同时执行最多 1044
+ 个进程, 这几乎足以满足任何需要了。 不过,
+ 如果您看在启动其它程序, 或运行用以支持大量用户的服务 (例如
+ <hostid role="fqdn">ftp.FreeBSD.org</hostid>) 时,
+ 看到令人担忧的 <errortype>proc table
+ full</errortype> 错误, 就应该提高这一数值,
+ 并重新联编内核。</para>
- <note><para>像是 &os;&nbsp;4.5,在您的内核配置中设置
- <option>MAXUSERS</option> 为会通过系统中内存的数量来选择一个合适的值。</para></note>
+ <note>
+ <para><literal>maxusers</literal> 并 <emphasis>不能</emphasis>
+ 限制能够登录到您机器上的用户的实际数量。
+ 它只是简单地将一系列内核数据表设置为合理的尺寸,
+ 使其与您系统上可能同时登录的用户的最大数量相适应。
+ <emphasis>确实</emphasis> 能够限制同时进行的远程登录,
+ 以及 X 终端窗口数量的关键字是 <link
+ linkend="kernelconfig-ptys"><literal>pseudo-device pty
+ 16</literal></link>。 从 &os;&nbsp;5.X 开始,
+ 您不再需要担心这个数字, 因为 &man.pty.4; 驱动具备了
+ <quote>自动克隆</quote> 的能力; 只需在配置文件中配置
+ <literal>device pty</literal> 就可以了。</para>
+ </note>
</sect3>
@@ -1801,7 +1839,7 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
</sect3>
</sect2>
- <sect2>
+ <sect2 id="nmbclusters">
<title>网络限制</title>
<para><literal>NMBCLUSTERS</literal> 内核配置选项指出了系统可用的网络Mbuf的数量。
@@ -1920,6 +1958,39 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
</note>
</sect3>
</sect2>
+
+ <sect2>
+ <title>虚拟内存</title>
+
+ <sect3>
+ <title><varname>kern.maxvnodes</varname></title>
+
+ <para>vnode 是对文件或目录的一种内部表达。
+ 因此, 增加可以被操作系统利用的 vnode 数量将降低磁盘的 I/O。
+ 一般而言, 这是由操作系统自行完成的, 也不需要加以修改。
+ 但在某些时候磁盘 I/O 会成为瓶颈, 而系统的 vnode 不足,
+ 则这一配置应被增加。 此时需要考虑是非活跃和空闲内存的数量。</para>
+
+ <para>要查看当前在用的 vnode 数量:</para>
+
+ <programlisting>&prompt.root; sysctl vfs.numvnodes
+vfs.numvnodes: 91349</programlisting>
+
+ <para>要查看最大可用的 vnode 数量:</para>
+
+ <programlisting>&prompt.root; sysctl kern.maxvnodes
+kern.maxvnodes: 100000</programlisting>
+
+ <para>如果当前的 vnode 用量接近最大值, 则将
+ <varname>kern.maxvnodes</varname> 值增大 1,000
+ 可能是个好主意。 您应继续查看
+ <varname>vfs.numvnodes</varname> 的数值,
+ 如果它再次攀升到接近最大值的程度,
+ 仍需继续提高 <varname>kern.maxvnodes</varname>。
+ 在 &man.top.1; 中显示的内存用量应有显著变化,
+ 更多内存会处于活跃 (active) 状态。</para>
+ </sect3>
+ </sect2>
</sect1>
<sect1 id="adding-swap-space">