aboutsummaryrefslogtreecommitdiff
path: root/zh_CN.GB2312/books/handbook/config
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2006-03-15 19:38:56 +0000
committerXin LI <delphij@FreeBSD.org>2006-03-15 19:38:56 +0000
commitb99e83b0a7c48690c2e6b7699bbd549e9a2c8da1 (patch)
tree61578f2c24f19d8d92ac0907829272ba8ae92e3e /zh_CN.GB2312/books/handbook/config
parentf266a6a31f7f22bbb73de28eccf694ca3317afaa (diff)
Notes
Diffstat (limited to 'zh_CN.GB2312/books/handbook/config')
-rw-r--r--zh_CN.GB2312/books/handbook/config/chapter.sgml152
1 files changed, 77 insertions, 75 deletions
diff --git a/zh_CN.GB2312/books/handbook/config/chapter.sgml b/zh_CN.GB2312/books/handbook/config/chapter.sgml
index bf79bc2e55..2f2f275c3d 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.212
+ Original Revision: 1.216
$FreeBSD$
-->
@@ -11,21 +11,21 @@
<author>
<firstname>Chern</firstname>
<surname>Lee</surname>
- <contrib>Written by </contrib>
+ <contrib>原作: </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Mike</firstname>
<surname>Smith</surname>
- <contrib>Based on a tutorial written by </contrib>
+ <contrib>这份文档基于一份教程, 其作者是 </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
<firstname>Matt</firstname>
<surname>Dillon</surname>
- <contrib>Also based on tuning(7) written by </contrib>
+ <contrib>此外, 也参考了 tuning(7), 其作者是 </contrib>
</author>
</authorgroup>
</chapterinfo>
@@ -38,32 +38,32 @@
<indexterm><primary>系统配置</primary></indexterm>
<indexterm><primary>系统优化</primary></indexterm>
- <para>&os; 的一个重要问题是系统配置。
+ <para>使用 &os; 的一个重要问题是系统配置。
正确地配置系统能充分地减少以后维护和升级系统所需的工作量。
这章将解释一些 &os; 的配置过程,包括一些可以调整的 &os;
系统的一些参数。</para>
- <para>阅读完本章之后您将会知道:</para>
+ <para>读完本章, 您将了解:</para>
<itemizedlist>
<listitem>
- <para>怎样有效的利用文件系统和交换分区。</para>
+ <para>如何有效地利用文件系统和交换分区。</para>
</listitem>
<listitem>
- <para><filename>rc.conf</filename> 的基本设置和
+ <para><filename>rc.conf</filename> 的基本设置以及
<filename>/usr/local/etc/rc.d</filename> 启动体系。</para>
</listitem>
<listitem>
- <para>怎样设置和测试一块网卡。</para>
+ <para>如何设置和测试网卡。</para>
</listitem>
<listitem>
- <para>怎样在您的网络设备上设置虚拟主机。</para>
+ <para>如何在您的网络设备上配置虚拟主机。</para>
</listitem>
<listitem>
- <para>怎样使用 <filename>/etc</filename> 下的各配置文件。</para>
+ <para>如何使用 <filename>/etc</filename> 下的各配置文件。</para>
</listitem>
<listitem>
- <para>怎样使用 <command>sysctl</command> 来调整 &os; 系统变量。</para>
+ <para>如何通过 <command>sysctl</command> 变量来对 &os; 系统进行调优。</para>
</listitem>
<listitem>
<para>怎样调整磁盘性能和修改内核限制。</para>
@@ -296,13 +296,13 @@
这取决于 &os; 版本。 但是不管怎样,
需要考虑的一个重要方面是他们的启动配置文件要能被基本启动脚本识别捕获。</para>
- <para>在 rcNG 出现之前, 应用程序会把一个简单的启动脚本扔到
+ <para>在 <filename>rc.d</filename> 出现之前, 应用程序会把一个简单的启动脚本放到
<filename class="directory">/usr/local/etc/rc.d</filename>
目录中, 这个目录中的脚本会被系统初始化脚本读取。</para>
<para>尽管很多人已经花费了相当多的时间来把旧的配置方式融入到新系统中,
仍然有许多第三方软件需要把脚本放到上面提到的目录中。
- 是否使用 rcNG 会对这些脚本的执行带来一些变化。
+ 是否使用 <filename>rc.d</filename> 会对这些脚本的执行带来一些变化。
在 &os;&nbsp;5.1 之前采用的是旧式的配置,
当然, 绝大多数情况下, 新式的脚本也会工作的很好。</para>
@@ -328,7 +328,7 @@ stop)
kill -9 `cat /var/run/utility.pid`
;;
*)
- echo "Usage: `basename $0` {start|stop}" >&2
+ echo "Usage: `basename $0` {start|stop}" &gt;&2
exit 64
;;
esac
@@ -344,31 +344,31 @@ exit 0</programlisting>
<screen>&prompt.root; <userinput><filename>/usr/local/etc/rc.d/utility.sh</filename> start</userinput></screen>
<para>现在不是所有第三方软件都需要在
- <filename>rc.conf</filename>有这么一行,
- 不过几乎每天都有port被修改来接受这个配置。
- 对于一个特定的应用程序来说,
- 你可以查看安装的最终输出来获得更多信息。
- 一些第三方软件仍然提供一个脚本来供 rcNG 来使用,
- 这将在下一节介绍。</para>
+ <filename>rc.conf</filename> 中进行如此的配置,
+ 不过几乎每天都有新的 port 被修改来采用这种配置方法。
+ 您应在安装的最后阶段查看所显示的信息,
+ 以了解某个具体的应用是否需要这样的配置。
+ 某些第三方软件会提供启动脚本, 以便与
+ <filename>rc.d</filename> 配合使用;
+ 这些内容将在下一节介绍。</para>
<sect2>
<title>扩展应用程序配置</title>
- <para>现在 &os; 包含rcNG,软件启动配置更加理想了,
- 当然也变得更深奥。
- 用 <link linkend="configtuning-rcNG">rcNG</link>
- 这章介绍的关键字,应用程序现在被配置为可以在某一个服务之后启动,
- 例如<acronym>DNS</acronym>;
- 可能还要在 <filename>rc.conf</filename>
- 传递更多的参数给启动脚本。
- 一个基本的脚本看起来有点象下面这个样子:</para>
+ <para>现在 &os; 提供了 <filename>rc.d</filename>,
+ 这使得对应用软件的启动进行配置变得更加方便,
+ 并提供了更多的其他功能。 例如, 使用在
+ <link linkend="configtuning-rcd">rc.d</link> 一节中所介绍的关键字,
+ 应用程序就可以设置在某些其他服务,
+ 例如 <acronym>DNS</acronym> 之后启动; 除此之外,
+ 还可以通过 <filename>rc.conf</filename> 来指定一些额外的启动参数,
+ 而不再需要将它们硬编码到启动脚本中。 基本的启动脚本如下所示:</para>
<programlisting>#!/bin/sh
#
# PROVIDE: utility
# REQUIRE: DAEMON
-# BEFORE: LOGIN
-# KEYWORD: FreeBSD shutdown
+# KEYWORD: shutdown
#
# DO NOT CHANGE THESE DEFAULT VALUES HERE
@@ -394,10 +394,9 @@ run_rc_command "$1"</programlisting>
<para>这个脚本将保证
<application>utility</application> 能够在
- <literal>login</literal> 服务之前, 并在
<literal>daemon</literal> 服务之后启动。 它同时也提供了设置和跟踪
- <acronym>PID</acronym> 的方法, 称作进程
- <acronym>ID</acronym> 文件。</para>
+ <acronym>PID</acronym>, 也就是进程
+ <acronym>ID</acronym> 文件的方法。</para>
<para>可以在 <filename>/etc/rc.conf</filename> 中加入:</para>
@@ -405,9 +404,7 @@ run_rc_command "$1"</programlisting>
<para>这个新方法也使得命令行参数、包含 <filename>/etc/rc.subr</filename>
中所提供的功能, 兼容 &man.rcorder.8; 工具并提供更简单的通过
- <filename>rc.conf</filename> 文件来配置的方法。 实际上它甚至可以放到
- <filename class="directory">/etc/rc.d</filename> 目录中。
- 当然, 在使用 &man.mergemaster.8; 来完成软件升级时这会带来一些麻烦。</para>
+ <filename>rc.conf</filename> 文件来配置的方法。</para>
</sect2>
<sect2>
@@ -588,7 +585,7 @@ HOME=/var/log
</sect2>
</sect1>
- <sect1 id="configtuning-rcNG">
+ <sect1 id="configtuning-rcd">
<sect1info>
<authorgroup>
<author>
@@ -602,18 +599,20 @@ HOME=/var/log
<title>在 &os; 5.X 和更新版本中使用 rc</title>
- <para>&os; 最近整合了 NetBSD 的 <filename>rc.d</filename>
- 系统以完成系统初始化。用户要注意 <filename>/etc/rc.d</filename>
- 目录下的文件。这些文件中的很多都是可以接受 <option>start</option>、
- <option>stop</option> 和 <option>restart</option> 选项的基本服务。
- 例如,&man.sshd.8; 可以用下面的命令重启:</para>
+ <para>在 2002 年, &os; 整合了来自 NetBSD 的
+ <filename>rc.d</filename> 系统, 并通过它来完成系统的初始化工作。
+ 用户要注意在
+ <filename>/etc/rc.d</filename> 目录下的文件。
+ 这里面的许多文件是用来管理基础服务的, 它们可以通过
+ <option>start</option>、 <option>stop</option>,
+ 以及 <option>restart</option> 选项来控制。
+ 举例来说, &man.sshd.8; 可以通过下面的命令来重启:</para>
<screen>&prompt.root; <userinput>/etc/rc.d/sshd restart</userinput></screen>
- <para>其它的服务跟这个过程相似。当然,在 &man.rc.conf.5;
- 指定的服务通常可以自动启动。例如,让网络地址转换(NAT)
- 守护进程在系统启动的时候启动可以简单的在
- <filename>/etc/rc.conf</filename> 中添加下面一行:</para>
+ <para>对其它服务的操作与此类似。 当然, 这些服务通常是在启动时根据
+ &man.rc.conf.5; 自动启动的。 例如, 要配置使系统启动时启动网络地址转换服务,
+ 可以简单地通过在 <filename>/etc/rc.conf</filename> 中加入如下设置来完成:</para>
<programlisting>natd_enable="YES"</programlisting>
@@ -661,16 +660,15 @@ $sshd_enable=YES</screen>
<screen>&prompt.root; <userinput>/etc/rc.d/sshd status</userinput>
sshd is running as pid 433.</screen>
- <para><option>reload</option> 一个服务也是可以的。
- 这将要尝试发送一个信号给一个单独的服务,
- 强制这个服务重新装载它的配置文件。大多数情况这意味着给服务发送一个
- <literal>SIGHUP</literal> 信号。
- </para>
+ <para>有些时候也可以 <option>reload</option> 服务。
+ 这一操作实际上是向服务发送一个信号, 来强制其重新加载配置。
+ 多数情况下, 发给服务的会是 <literal>SIGHUP</literal>
+ 信号。 并非所有服务都支持这一功能。</para>
- <para><filename>rc.d</filename> 系统不仅仅是供网络服务使用的,
- 它也给很多系统初始化提供服务。例如,处理 <filename>bgfsck</filename>
- 文件。当这个脚本执行的时候,它会输出下列信息:
- </para>
+ <para><filename>rc.d</filename> 系统不仅用于网络服务,
+ 它也为系统初始化中的多数过程提供支持。
+ 比如 <filename>bgfsck</filename> 文件, 当它被执行时,
+ 将会给出下述信息:</para>
<screen>Starting background file system checks in 60 seconds.</screen>
@@ -698,10 +696,6 @@ sshd is running as pid 433.</screen>
This file will run <emphasis>before</emphasis>
the specified services.</para>
</listitem>
-
- <listitem>
- <para>KEYWORD: &os; or NetBSD. This is used for *BSD dependent features.</para>
- </listitem>
</itemizedlist>
<para>通过这种方法,系统管理员可以容易的控制系统而不用像其他一些
@@ -1441,7 +1435,7 @@ kern.maxproc: 1044</screen>
这样的语法:</para>
<screen>&prompt.root; <userinput>sysctl kern.maxfiles=5000</userinput>
-kern.maxfiles: 2088 -> 5000</screen>
+kern.maxfiles: 2088 -&gt; 5000</screen>
<para>sysctl 变量的设置通常是字符串、数字或者布尔型。
(布尔型用 <literal>1</literal> 来表示'yes',用
@@ -1579,15 +1573,20 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
<primary><varname>hw.ata.wc</varname></primary>
</indexterm>
- <para>&os;&nbsp;4.3 IDE 写缓存关掉了。这降低了到 IDE
- 磁盘的带宽但是保证了传进磁盘数据的严格完整性。这个问题是因为
- IDE 驱动器当写完成的时候无所事事。IDE 写缓存打开的时候,IDE
- 驱动器不按顺序把数据写进磁盘。当有很重的磁盘负载的时候它有时迟延写入一些块。
- 当机或者掉电会引起严重的文件系统讹误。&os; 的默认值改变成安全的模式。
- 不幸的是结果是带来了很大的性能损失,所以我们在发行版之后把写缓存的默认值改成了
- on。您应该注意 <varname>hw.ata.wc</varname> sysctl 变量来检查一下系统中的默认值。
- 如果 IDE 写缓存被关闭了,您可以通过设置内核变量为 1 来打开它。这必须在启动时通过
- boot loader 来完成。在内核启动之后尝试这么做将会没有效果。</para>
+ <para>&os;&nbsp;4.3 中默认将 IDE 的写缓存关掉了。 这会降低到 IDE
+ 磁盘用于写入操作的带宽, 但我们认为这有助于避免硬盘厂商所引入的,
+ 可能引致严重的数据不一致问题。 这类问题实际上是由于 IDE
+ 硬盘就写操作完成这件事的不诚实导致的。 当启用了 IDE 写入缓存时,
+ IDE 硬盘驱动器不但不会按顺序将数据写到盘上, 而且当磁盘承受重载时,
+ 它甚至会自作主张地对推迟某些块的实际写操作。 这样一来,
+ 在系统发生崩溃或掉电时, 就会导致严重的文件系统损坏。
+ 基于这些考虑, 我们将 &os; 的默认配置改成了更为安全的禁用 IDE
+ 写入缓存。 然而不幸的是, 这样做导致了性能的大幅降低,
+ 因此在后来的发行版中这个配置又改为默认启用了。
+ 您可以通过观察 <varname>hw.ata.wc</varname> sysctl 变量,
+ 来确认您的系统中所采用的默认值。 如果 IDE 写缓存被禁用,
+ 您可以通过将内核变量设置为 1 来启用它。 这一操作必须在启动时通过
+ boot loader 来完成。 在内核启动之后尝试这么做是没有任何作用的。</para>
<para>要了解更多的信息,请查阅 &man.ata.4;。</para>
</sect3>
@@ -1894,10 +1893,10 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
<varname>net.inet.ip.portrange.last</varname>。
<literal>10000</literal>、<literal>20000</literal> 或者
<literal>30000</literal> 可能是适当的值。
- 更改端口范围的时候也要考虑到防火墙。一些防火墙会阻止端口的大部分范围
+ 更改端口范围的时候也要考虑到防火墙。 一些防火墙会阻止端口的大部分范围
(通常是低范围的端口)并且用高端口进行对外连接(&mdash;)。
- 基于这个问题建议把 <varname>net.inet.ip.portrange.first</varname>
- 设置的小一点。</para>
+ 基于这个问题建议不要把 <varname>net.inet.ip.portrange.first</varname>
+ 设的太小。</para>
</sect3>
<sect3>
@@ -1908,7 +1907,7 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
<secondary><varname>net.inet.tcp.inflight.enable</varname></secondary>
</indexterm>
- <para>限制 TCP 带宽延迟和 NetBSD 的 TCP/Vegas 类似。
+ <para>限制 TCP 带宽延迟积和 NetBSD 的 TCP/Vegas 类似。
它可以通过将 sysctl 变量
<varname>net.inet.tcp.inflight.enable</varname>
设置成 <literal>1</literal> 来启用。
@@ -2002,6 +2001,9 @@ kern.maxvnodes: 100000</programlisting>
有三种方法增加交换空间:添加一块新的硬盘驱动器、通过
NFS 使用交换空间和在一个现有的分区上创建一个交换文件。</para>
+ <para>要了解关于如何加密交换区, 相关配置, 以及为什么要这样做, 请参阅手册的
+ <xref linkend="swap-encrypting">。</para>
+
<sect2 id="new-drive-swap">
<title>在新的硬盘驱动器上使用交换空间</title>
@@ -2107,7 +2109,7 @@ kern.maxvnodes: 100000</programlisting>
<para>通过重新启动机器或下面的命令使交换文件立刻生效:</para>
- <screen>&prompt.root; <userinput>mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0</userinput></screen>
+ <screen>&prompt.root; <userinput>mdconfig -a -t vnode -f /usr/swap0 -u 0 &amp;&amp; swapon /dev/md0</userinput></screen>
</listitem>
</orderedlist>