diff options
author | Xin LI <delphij@FreeBSD.org> | 2005-08-28 17:45:15 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2005-08-28 17:45:15 +0000 |
commit | b8027a6a72999cf64c7e48d59f47329ca2ae5c33 (patch) | |
tree | 3fecb4ce1f84dcdee1148471ea06429d7898d4dd /zh_CN.GB2312/books/handbook/config | |
parent | 91d23388490eb45f7a8983cd724a97c06dc96f79 (diff) |
Notes
Diffstat (limited to 'zh_CN.GB2312/books/handbook/config')
-rw-r--r-- | zh_CN.GB2312/books/handbook/config/chapter.sgml | 133 |
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; 4.5 开始, 如果您明确地将 + <literal>maxusers</literal> 设置为 + <literal>0</literal>, 则系统会自动地根据硬件配置来确定这个值。<footnote> + <para>自动调整算法会将 + <literal>maxusers</literal> 设置为与主存的数量一样, + 或者取其下限 32 或上限 384。</para> + </footnote>。 在 &os; 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; 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; 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"> |