Merge from English version 1.158 -> 1.181

Submited by:		Valeriy Kravchuk <openxs@ipnet.kiev.ua>
With fixes from:	maxim, den
Obtained from:		The FreeBSD Russian Documentation Project
This commit is contained in:
Denis Peplin 2004-10-22 10:38:04 +00:00
parent 15eda87cb7
commit 04c0952551
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=22646

View file

@ -2,9 +2,9 @@
The FreeBSD Documentation Project
$FreeBSD$
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/config/chapter.sgml,v 1.23 2004/08/31 11:05:59 den Exp $
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/config/chapter.sgml,v 1.27 2004/10/22 10:33:59 den Exp $
Original revision: 1.158
Original revision: 1.181
-->
<chapter id="config-tuning">
@ -40,6 +40,10 @@
<firstname>Денис</firstname>
<surname>Пеплин</surname>
</author>
<author>
<firstname>Валерий</firstname>
<surname>Кравчук</surname>
</author>
</authorgroup>
</chapterinfo>
@ -94,9 +98,7 @@
linkend="basics">).</para>
</listitem>
<listitem>
<para>Ознакомиться с модернизированием исходных текстов &os;
(<xref linkend="cutting-edge">), и
основами конфигурации/компиляции ядра
<para>Ознакомиться с основами конфигурации/компиляции ядра
(<xref linkend="kernelconfig">).</para>
</listitem>
</itemizedlist>
@ -325,39 +327,76 @@
</sect1>
<sect1 id="configtuning-starting-services">
<sect1info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Предоставил </contrib>
</author>
</authorgroup>
</sect1info>
<title>Запуск сервисов</title>
<indexterm><primary>сервисы</primary></indexterm>
<para>Обычно в системе работает множество сервисов. Их можно
запустить различными способами, каждый из которых имеет свои
преимущества.</para>
<para>Многие пользователи предпочитают устанавливать программы сторонних
производителей в &os; из набора портов. В подобных случаях
может потребоваться сконфигурировать программы так, чтобы они
запускались при инициализации системы. Сервисы, такие как
<filename role="package">mail/postfix</filename> или
<filename role="package">www/apache13</filename>,&nbsp;&mdash;
это лишь два примера множества программных пакетов, которые
можно запускать при инициализации системы. Поэтому остается только
надеяться, что для процедур, способных работать с программами
сторонних производителей, будут выдаваться объяснения в тех редких
случаях, когда что-то идет не так и приложение не запускается как
следует.</para>
<indexterm><primary>/usr/local/etc/rc.d</primary></indexterm>
<para>Большинство входящих в &os; сервисов, таких как &man.cron.8;,
запускается с помощью стартовых скриптов системы. Эти скрипты
могут отличаться в зависимости от версии &os; или ее производителя;
однако важнее всего учитывать, что их начальную конфигурацию
можно задать с помощью простых стартовых скриптов.</para>
<para>Программное обеспечение, установленное из коллекции портов или
пакетов обычно записывает свои скрипты в
<filename>/usr/local/etc/rc.d</filename>
который выполняется с аргументом <option>start</option> при запуске
и с аргументом <option>stop</option> при завершении работы системы.
Этот метод запуска рекомендуется, если вы запускаете сервисы как
<username>root</username>, или же они должны быть запущены с
привилегиями <username>root</username>. Эти скрипты устанавливаются
вместе с пакетами, и соответственно, при удалении пакетов скрипты будут
также удалены.</para>
<para>С момента появления rcNG стало ясно, что инициализацию системы
для утилит сторонних производителей можно упростить. Многие
годы приложения должны были помещать простой стартовый скрипт в
каталог <filename role="directory">/usr/local/etc/rc.d</filename>,
который затем читался скриптами инициализации системы. Эти скрипты
затем выполнялись в ходе последующих стадий запуска системы.</para>
<para>Типичный скрипт из <filename>/usr/local/etc/rc.d</filename>,
выполняющийся при запуске выглядит следующим образом:</para>
<para>Хотя много разработчиков потратили часы на попытки внедрить
старый стиль конфигурирования в новую систему, остаётся фактом,
что для некоторых утилит сторонних производителей по-прежнему
необходим скрипт, помещённый в указанный выше каталог. Незначительные
различия в скриптах зависят от того, используется ли rcNG. Для
любой версии &os; до 5.1 дополнительное конфигурирование не
потребуется; в действительности, почти во всех случаях прекрасно
подойдет скрипт, который вскоре будет представлен.</para>
<para>Хотя каждый скрипт должен соответствовать некоторым минимальным
требованиям, в большинстве случаев эти требования не зависят от версии
&os;. Каждый скрипт должен иметь в конце расширение
<filename>.sh</filename> и каждый скрипт должен быть выполняемым.
Последнее требование может быть выполнено путем установки командой
<command>chmod</command> уникальных прав доступа
<literal>755</literal>. Также, как минимум, должна быть опция
<literal>start</literal> для запуска приложения и опция
<literal>stop</literal> для его остановки.</para>
<para>Простейший стартовый скрипт, пожалуй, будет похож на
следующий:</para>
<programlisting>#!/bin/sh
echo -n ' FooBar'
echo -n ' utility'
case "$1" in
start)
/usr/local/bin/foobar
/usr/local/bin/utility
;;
stop)
kill -9 `cat /var/run/foobar.pid`
kill -9 `cat /var/run/utility.pid`
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
@ -365,57 +404,118 @@ stop)
;;
esac
exit 0
</programlisting>
exit 0</programlisting>
<para>Стартовые скрипты &os; ищут в каталоге
<filename>/usr/local/etc/rc.d</filename> скрипты с расширением
<literal>.sh</literal>, исполняемые пользователем
<username>root</username>. Обнаруженные скрипты выполняются с
с параметром <option>start</option> при старте системы и с параметром
<option>stop</option> при завершении работы системы.
Поэтому если вы хотите использовать пример скрипта выше и запускать
его во время старта системы, сохраните его в каталоге
<filename>/usr/local/etc/rc.d</filename> с именем
<filename>FooBar.sh</filename> и убедитесь, что он исполняемый.
Вы можете сделать скрипт исполняемым с помощью &man.chmod.1;,
как показано ниже:</para>
<para>Этот скрипт поддерживает опции <literal>stop</literal> и
<literal>start</literal> для приложения, которое мы здесь называем
просто&nbsp;&mdash; <literal>utility</literal>. Для этого приложения
затем можно поместить следующую строку в файл <filename>/etc/rc.conf</filename>:</para>
<screen>&prompt.root; <userinput>chmod 755 <replaceable>FooBar.sh</replaceable></userinput></screen>
<programlisting>utility_enable="YES"</programlisting>
<para>Некоторые сервисы должны быть запущены &man.inetd.8; при установке
соединения с определённым портом. Это может понадобиться, например,
для почтовых серверов (POP, IMAP, и т.д.). Для этого нужно
отредактировать файл <filename>/etc/inetd.conf</filename>.
Подробнее о работе с этим файлом вы можете прочитать в
&man.inetd.8;.</para>
<para>А можно запускать его и вручную, с помощью команды:</para>
<para>Некоторые дополнительные системные сервисы могут быть не учтены
в файле <filename>/etc/rc.conf</filename>. Тогда для их запуска нужно
прописать соответствующую команду в <filename>/etc/rc.local</filename>.
Во &os;&nbsp;3.1 не предусмотрен <filename>/etc/rc.local</filename>;
но считается признаком хорошего тона создание этого файла
администратором. Заметьте, что <filename>rc.local</filename>
используется для запуска сервисов только в крайнем случае.
Если есть лучший способ запустить сервис, используйте его.</para>
<screen>&prompt.root; <userinput><filename>/usr/local/etc/rc.d/utility.sh</filename> start</userinput></screen>
<note><para><emphasis>Не</emphasis> записывайте свои команды в
<filename>/etc/rc.conf</filename>. Для запуска демонов, или для
выполнения вашей команды во время запуска - запишите ваш скрипт
в <filename>/usr/local/etc/rc.d</filename>.</para>
</note>
<para>Хотя и не все программы сторонних производителей требуют
добавления строки в файл <filename>rc.conf</filename>, практически
каждый день очередной новый порт меняется так, чтобы поддерживать
подобную конфигурацию. Поищите в результатах, выдаваемых после
установки более детальную информацию по конкретному приложению.
Некоторые программы сторонних производителей будут включать стартовые
скрипты, позволяющие использовать приложение с rcNG; но это мы еще
обсудим в следующем разделе.</para>
<para>Также допускается использование &man.cron.8; для запуска системных
сервисов. Этот метод обладает рядом преимуществ, которые заключаются не
только в том, что &man.cron.8; запускает эти процессы, как владелец
<command>crontab</command>, но и в том, что сервисы могут быть
запущены и не привилегированными пользователями.</para>
<sect2>
<title>Расширенное конфигурирование приложения</title>
<para>Очень удобно пользоваться возможностью
&man.cron.8;, которая заключается в том, что если вместо времени
указать <literal>@reboot</literal>, запланированная программа будет
запущена сразу после запуска &man.cron.8; после перезагрузки
системы.</para>
<para>Теперь, когда &os; включает rcNG, конфигурирование запуска
приложений стало более оптимальным; фактически, оно стало более
тщательным. С помощью ключевых слов, рассмотренных в разделе
<link linkend="configtuning-rcNG">rcNG</link>, приложения теперь
можно настроить для запуска после других заданных сервисов,
например, <acronym>DNS</acronym>; можно разрешить передачу
дополнительных флагов через <filename>rc.conf</filename> вместо
жесткого задания флагов в стартовых скриптах, и т.д. Простой
скрипт может иметь следующий вид:</para>
<programlisting>#!/bin/sh
#
# PROVIDE: utility
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: FreeBSD shutdown
#
# НЕ МЕНЯЙТЕ ЗДЕСЬ ЭТИ СТАНДАРТНЫЕ ЗНАЧЕНИЯ
# ЗАДАВАЙТЕ ИХ В ФАЙЛЕ /etc/rc.conf
#
utility_enable=${utility_enable-"NO"}
utility_flags=${utility_flags-""}
utility_pidfile=${utility_pidfile-"/var/run/utility.pid"}
. /etc/rc.subr
name="utility"
rcvar=`set_rcvar`
command="/usr/local/sbin/utility"
load_rc_config $name
pidfile="${utility_pidfile}"
start_cmd="echo \"Starting ${name}.\"; /usr/bin/nice -5 ${command} ${utility_flags} ${command_args}"
run_rc_command "$1"</programlisting>
<para>Этот скрипт будет гарантировать, что указанное приложение
<application>utility</application> будет запущено перед сервисом
<literal>login</literal>, но после сервиса
<literal>daemon</literal>. Он также предоставляет метод
для создания и отслеживания файла идентификатора процесса,
<acronym>PID</acronym>.</para>
<para>Этот новый метод также позволяет легко работать с аргументами
командной строки, включать стандартные функции из файла
<filename>/etc/rc.subr</filename>, обеспечивает совместимость
с утилитой &man.rcorder.8; и упрощает конфигурирование с помощью
файла <filename>rc.conf</filename>. По сути, этот сценарий
можно даже поместить в каталог
<filename role="directory">/etc/rc.d</filename>. Это, однако,
потенциально может сбить с толку утилиту &man.mergemaster.8;
при обновлениях программного обеспечения.</para>
</sect2>
<sect2>
<title>Использование сервисов для запуска сервисов</title>
<para>Другие сервисы, такие как даемоны сервера
<acronym>POP</acronym>3, <acronym>IMAP</acronym>, и т.п. могут
быть запущены с помощью &man.inetd.8;. Для этого необходимо
установить сервисную утилиту из набора портов и добавить
соответствующую строчку конфигурации в файл
<filename>/etc/inetd.conf</filename> или раскомментировать
подходящую строку конфигурации из уже имеющихся. Работа с даемоном
<command>inetd</command> и его конфигурирование подробно описано
в разделе <link linkend="network-inetd">inetd</link>.</para>
<para>В некоторых случаях использование для запуска системных
служб даемона &man.cron.8; может оказаться более приемлемым. Этот
подход имеет несколько преимуществ, поскольку даемон
<command>cron</command> запускает эти процессы от имени
владельца файла <command>crontab</command>. Это позволяет
обычным пользователям запускать и поддерживать некоторые
приложения.</para>
<para>Утилита <command>cron</command> поддерживает уникальную
возможность, <literal>@reboot</literal>,&nbsp;&mdash; это значение
можно использовать вместо спецификации времени. В результате,
задание будет выполнено при запуске &man.cron.8;, обычно&nbsp;&mdash;
в ходе инициализации системы.</para>
</sect2>
</sect1>
<sect1 id="configtuning-cron">
@ -564,7 +664,7 @@ HOME=/var/log
любимый текстовый редактор: утилита <command>cron</command>
узнает о том, что файл изменился и сразу начнет использовать
обновленную версию. Обратитесь к <ulink
url="../faq/admin.html#ROOT-NOT-FOUND-CRON-ERRORS">этой
url="&url.books.faq;/admin.html#ROOT-NOT-FOUND-CRON-ERRORS">этой
части FAQ</ulink> за дальнейшей информацией.</para>
</important>
@ -938,7 +1038,7 @@ tun0: flags=8010&lt;POINTOPOINT,MULTICAST&gt; mtu 1500</screen>
<literal>active</literal>, т.е. несущая обнаружена.
Для <devicename>dc1</devicename>, мы видим
<literal>status: no carrier</literal>. Это нормально, когда
ethernet кабель не подключен к карте.</para>
Ethernet кабель не подключен к карте.</para>
</listitem>
</orderedlist>
@ -1063,8 +1163,8 @@ round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms</screen>
низкой скорости соединения.</para>
<para>Некоторые пользователи встречаются с несколькими
<quote>device timeouts</quote>, что нормально для некоторых сетевых
карт. Если это продолжается и надоедает, убедитесь, что
<errorname>device timeouts</errorname>, что нормально для некоторых
сетевых карт. Если это продолжается и надоедает, убедитесь, что
устройство не конфликтует с другим устройством. Внимательно
проверьте подключение кабеля. Возможно также, что вам просто надо
установить другую карту.</para>
@ -1112,25 +1212,28 @@ round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms</screen>
один сервер работает в сети как несколько серверов. Это достигается
присвоением нескольких сетевых адресов одному интерфейсу.</para>
<para>У сетевого интерфейса всегда есть один <quote>настоящий</quote> адрес, хотя он
может иметь любое количество <quote>синонимов</quote> (alias). Эти алиасы обычно
добавляются путём помещения синонимов в
<filename>/etc/rc.conf</filename>.</para>
<para>У сетевого интерфейса всегда есть один <quote>настоящий</quote>
адрес, хотя он может иметь любое количество <quote>синонимов</quote>
(alias). Эти синонимы обычно добавляются путём помещения
соответствующих записей в <filename>/etc/rc.conf</filename>.</para>
<para>Синоним для интерфейса <devicename>fxp0</devicename> выглядит
следующим образом:</para>
<programlisting>ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"</programlisting>
<para>Заметьте, что алиас записи должны начинаться с alias0 и идти далее
в определенном порядке, (например, _alias1, _alias2, и т.д.).
Конфигурационный процесс остановится на первом отсутствующем по порядку
числе.</para>
<para>Заметьте, что записи синонимов должны начинаться с
<literal>alias0</literal> и идти далее в определенном порядке
(например, <literal>_alias1</literal>, <literal>_alias2</literal>,
и т.д.). Конфигурационный процесс остановится на первом по порядку
отсутствующем числе.</para>
<para>Определение маски подсети для синонима очень важно, но к счастью, так же
просто. Для каждого интерфейса должен быть один адрес с истинной маской
подсети. Любой другой адрес в сети должен иметь маску подсети, состоящую
из всех единичек.</para>
<para>Определение маски подсети для синонима очень важно, но к счастью,
так же просто. Для каждого интерфейса должен быть один адрес с
истинной маской подсети. Любой другой адрес в сети должен иметь
маску подсети, состоящую из всех единичек (что выражается как
<hostid role="netmask">255.255.255.255</hostid> или как
<hostid role="netmask">0xffffffff</hostid>).</para>
<para>Например, рассмотрим случай, когда интерфейс
<devicename>fxp0</devicename> подключён к двум сетям, к сети
@ -1142,7 +1245,16 @@ round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms</screen>
<hostid role="ipaddr">10.1.1.1</hostid> по
<hostid role="ipaddr">10.1.1.5</hostid> и с
<hostid role="ipaddr">202.0.75.17</hostid> по
<hostid role="ipaddr">202.0.75.20</hostid>.</para>
<hostid role="ipaddr">202.0.75.20</hostid>. Как было сказано выше,
только первый адрес в заданном диапазоне (в данном случае,
<hostid role="ipaddr">10.0.1.1</hostid> и
<hostid role="ipaddr">202.0.75.17</hostid>) должен иметь реальную
маску сети; все остальные (с <hostid role="ipaddr">10.1.1.2</hostid>
по <hostid role="ipaddr">10.1.1.5</hostid> и с
<hostid role="ipaddr">202.0.75.18</hostid> по
<hostid role="ipaddr">202.0.75.20</hostid>) должны быть
сконфигурированы с маской сети
<hostid role="netmask">255.255.255.255</hostid>.</para>
<para>Для этого должны быть внесены следующие записи:</para>
@ -1168,6 +1280,9 @@ round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms</screen>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1*">
<colspec colwidth="2*">
<tbody>
<row>
<entry><filename>/etc</filename></entry>
@ -1238,6 +1353,9 @@ round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms</screen>
<informaltable frame="none">
<tgroup cols="2">
<colspec colwidth="1*">
<colspec colwidth="2*">
<tbody>
<row>
<entry><literal>nameserver</literal></entry>
@ -1277,7 +1395,7 @@ nameserver 147.11.100.30</programlisting>
<title><filename>/etc/hosts</filename></title>
<indexterm><primary>hosts</primary></indexterm>
<para><filename>/etc/hosts</filename> - простая текстовая база
данных, напоминающая старый Интернет. Она работает совместно с
DNS и NIS, сопоставляя доменные имена IP адресу.
@ -1319,7 +1437,7 @@ nameserver 147.11.100.30</programlisting>
#</programlisting>
<para>Формат <filename>/etc/hosts</filename>:</para>
<programlisting>[IP адрес в Интернете] [имя компьютера] [alias1] [alias2] ...</programlisting>
<para>Например:</para>
@ -1337,9 +1455,9 @@ nameserver 147.11.100.30</programlisting>
<sect3>
<title><filename>syslog.conf</filename></title>
<indexterm><primary>syslog.conf</primary></indexterm>
<para><filename>syslog.conf</filename> is является файлом конфигурации
для &man.syslogd.8;. В нём указываются, типы сообщений
генерируемые <command>syslog</command>, и лог файлы, в которые они
@ -1385,7 +1503,7 @@ cron.* /var/log/cron
<title><filename>newsyslog.conf</filename></title>
<indexterm><primary>newsyslog.conf</primary></indexterm>
<para><filename>newsyslog.conf</filename> - конфигурационный файл
&man.newsyslog.8;, программы, обычно контролируемой &man.cron.8;.
&man.newsyslog.8; определяет, когда лог-файлы нуждаются в
@ -1402,7 +1520,7 @@ cron.* /var/log/cron
они должны быть пересмотрены. Лог файлы могут быть перегруппированы
и/или заархивированы, когда они либо достигнут определённого
размера, либо при достижении определённых даты/времени.</para>
<programlisting># configuration file for newsyslog
# &dollar;&os;&dollar;
#
@ -1489,7 +1607,7 @@ kern.maxfiles: 2088 -> 5000</screen>
либо строкового, либо целого, либо булевого типа. Переменные булевого
типа могут принимать два значения (<literal>1</literal> (истина) и
<literal>0</literal> (ложь)).</para>
<para>Если вы хотите устанавливать некоторые переменные автоматически
при каждой загрузке компьютера, добавьте их в файл
<filename>/etc/sysctl.conf</filename>. За дополнительной
@ -1546,22 +1664,24 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
<indexterm>
<primary><varname>vfs.vmiodirenable</varname></primary>
</indexterm>
<para>Значением переменной <varname>vfs.vmiodirenable</varname>
может быть установлено в 0 (выключено) или 1 (включено); по
умолчанию 1. Эта переменная отвечает за метод кэширования
каталогов. Размер большинства каталогов невелик. Они могут
поместиться в одном фрагменте (обычно 1K), и могут занимать
ещё меньше места (обычно 512 байт) в кэше буфера. Однако, при
работе в стандартном режиме буфер прокэширует только заданное число
каталогов даже если у вас много памяти. Включение этого параметра
ещё меньше места (обычно 512&nbsp;байт) в кэше буфера.
При отключении этой переменной (при установке значения 0)
буфер прокэширует только заданное число
каталогов даже если у вас много памяти. При включении (при
установке значения 1) эта переменная
sysctl позволит использовать страничное кэширование VM,
делая доступным для кэширования каталогов
весь объём памяти. Однако,
минимальный объём памяти, используемой для
кэширования каталогов стал равен объёму страницы (обычно 4&nbsp;K)
вместо 512&nbsp;байт. Мы рекомендуем включить эту опцию, если ваш
компьютер исполняет программы, манипулирующие значительным
вместо 512&nbsp;байт. Мы рекомендуем оставлять эту опцию включенной,
если ваш компьютер исполняет программы, манипулирующие значительным
количеством файлов. Примером таких программ могут быть кэширующие
прокси-серверы, большие почтовые серверы и серверы новостей. Обычно
включение этой опции не понижает производительности, однако лучше
@ -1606,7 +1726,7 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
<para>Есть много других переменных sysctl, относящихся к кэшированию
в буфер и страничному кэшированию VM. Мы не рекомендуем изменять
эти значения. Начиная &os; 4.3, система VM делает отличную
эти значения. Начиная &os;&nbsp;4.3, система VM делает отличную
работу по автоматической самонастройке.</para>
</sect3>
@ -1662,25 +1782,25 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
ядра, равное 1. Это должно быть сделано при помощи загрузчика при
загрузке. Если вы сделаете это позже - изменения не будут иметь
силы.</para>
<para>За более подробной информацией обращайтесь к &man.ata.4;.</para>
</sect3>
<sect3>
<title><option>SCSI_DELAY</option>
<title><literal>SCSI_DELAY</literal>
(<varname>kern.cam.scsi_delay</varname>)</title>
<indexterm>
<primary><option>SCSI_DELAY</option></primary>
<primary><literal>SCSI_DELAY</literal></primary>
<secondary><varname>kern.cam.scsi_delay</varname></secondary>
</indexterm>
<para>Параметр настройки ядра <option>SCSI_DELAY</option> может
<para>Параметр настройки ядра <literal>SCSI_DELAY</literal> может
использоваться для уменьшения времени загрузки системы.
Значение по умолчанию велико и может составлять более
<literal>15</literal> секунд в процессе загрузки. Уменьшение
его до <literal>5</literal> секунд обычно работает (особенно
с современными дисками). В новые версии &os; (5.0+) должен
с современными дисками). В новых версиях &os; (5.0 и выше) должен
использоваться параметр <varname>kern.cam.scsi_delay</varname>,
настраиваемый во время загрузки. Этот параметр и параметр
настройки ядра принимают значения в
@ -1879,7 +1999,7 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
<indexterm>
<primary><varname>kern.maxfiles</varname></primary>
</indexterm>
<para>Значение <varname>kern.maxfiles</varname> может быть увеличено
или уменьшено в зависимости от потребностей вашей системы. Эта
переменная определяет максимальное число дескрипторов файлов. Когда
@ -1935,7 +2055,7 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
<sect2>
<title>Сетевые Ограничения</title>
<para>Опция ядра <option>NMBCLUSTERS</option> обуславливает
<para>Опция ядра <literal>NMBCLUSTERS</literal> обуславливает
количество Mbuf, доступных на машине. На сервере с большим трафиком
и маленьким Mbuf производительность будет пониженной. Каждый кластер
представлен двумя килобайтами памяти, поэтому значение 1024 означает
@ -1955,16 +2075,16 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
<para>Для настройки в процессе загрузки используйте в loader переменную
<varname>kern.ipc.nmbclusters</varname>. Только в старых версиях
&os; потребуется пересобрать ядро (&man.config.8;) с измененным
параметром <option>NMBCLUSTERS</option>.</para>
параметром <literal>NMBCLUSTERS</literal>.</para>
<para>Для нагруженных серверов, интенсивно использующих системный
вызов &man.sendfile.2;, может потребоваться увеличения буферов
&man.sendfile.2; с помощью параметра конфигурации ядра
<option>NSFBUFS</option>, или изменения значения путем установки
<literal>NSFBUFS</literal>, или изменения значения путем установки
переменной в <filename>/boot/loader.conf</filename>
(обратитесь к &man.loader.8; за подробностями). Общий
признак того, что параметр требуется изменить &mdash;
состояние процессов <errorname>sfbufa</errorname>.
состояние процессов <literal>sfbufa</literal>.
Переменная sysctl <varname>kern.ipc.nsfbufs</varname>
установлена только для чтения. Этот параметр увеличивается
вместе с <varname>kern.maxusers</varname>, хотя может
@ -2020,7 +2140,7 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
</indexterm>
<para>TCP Bandwidth Delay Product Limiting похоже на
TCP/Vegas в <application>NetBSD</application>. Оно может быть
TCP/Vegas в NetBSD. Оно может быть
включено установкой переменной sysctl
<varname>net.inet.tcp.inflight_enable</varname> в
<literal>1</literal>. Система попытается вычислить задержку
@ -2083,10 +2203,8 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
<para>Лучший способ добавить подкачку, конечно, использовать
еще один жесткий диск. Вы можете сделать это в любой
момент. Если такой способ подходит, прочтите еще раз
информацию по <ulink
url="configtuning-initial.html#SWAP-DESIGN">разделу
подкачки</ulink> из раздела Руководства по <ulink
url="configtuning-initial.html">первоначальной настройке</ulink>,
информацию по пространству подкачки в разделе
<xref linkend="configtuning-initial"> Руководства,
где рассказывается о наилучшем способе организации раздела
подкачки.</para>
</sect2>
@ -2273,7 +2391,7 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
происходят вне контроля OS. Это означает, что пользователи
могут решить проблемы с APM BIOS только путем перепрошивки
его ROM; это очень опасная процедура, и если она завершится
неудачно, система может прийти в невосстановимое состояние.
неудачно, система может оказаться в невосстановимом состоянии.
В-третьих, реализация технологии APM зависит от поставщика,
что означает дублирование усилий и если в BIOS одного
из поставщиков будет найдена и исправлена ошибка, ее могли
@ -2281,7 +2399,7 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
велик для реализации сложной политики управления питанием, или
такой политики, которая может хорошо адаптироваться к потребностям
компьютера.</para>
<para><emphasis>Plug and Play BIOS (PNPBIOS)</emphasis> был неудобен
во многих ситуациях. PNPBIOS это 16-битная технология,
поэтому OS требовалось использовать 16-битную эмуляцию для
@ -2362,7 +2480,7 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
в байткоде <firstterm><acronym>ACPI</acronym> Machine
Language</firstterm> (<acronym>AML</acronym>) некоторых материнских плат,
незавершенные участки кода в подсистемах ядра &os; и ошибки в
интерпретаторе <acronym>ACPI-CA</acronym>.</para>
интерпретаторе &intel; <acronym>ACPI-CA</acronym>.</para>
<para>Этот раздел предназначен для того, чтобы упростить ваше
содействие разработчикам &os; <acronym>ACPI</acronym> в
@ -2395,13 +2513,13 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
</listitem>
<listitem>
<para>Вывод dmesg после <quote>boot
<para>Вывод &man.dmesg.8; после <quote>boot
<option>-v</option></quote>, включая все сообщения, появившиеся
при изучении ошибки.</para>
</listitem>
<listitem>
<para>Вывод dmesg после <quote>boot
<para>Вывод &man.dmesg.8; после <quote>boot
<option>-v</option></quote> с выключенным <acronym>ACPI</acronym>,
если его отключение помогает решить проблему.</para>
</listitem>
@ -2473,7 +2591,7 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
<para>Драйвер <acronym>ACPI</acronym> должен прочесть заданные
таблицы, реализовать интерпретатор для байткода, модифицировать
драйвера устройств и ядро для приема информации от подсистемы
<acronym>ACPI</acronym>. Для &os;, Intel предоставила
<acronym>ACPI</acronym>. Для &os; &intel; предоставила
интерпретатор (<acronym>ACPI-CA</acronym>), тот же что для
Linux и NetBSD. Исходный код <acronym>ACPI-CA</acronym>
находится в каталоге
@ -2670,7 +2788,8 @@ device_probe_and_attach: cbb0 attach returned 12</screen>
ошибочного!) байткода. Это обычно проявляется появлением
консольных сообщений ядра, подобных этому:</para>
<screen>ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] (Node 0xc3f6d160), AE_NOT_FOUND</screen>
<screen>ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\
(Node 0xc3f6d160), AE_NOT_FOUND</screen>
<para>Зачастую вы можете разрешить эти проблемы путем обновления
<acronym>BIOS</acronym> до последней ревизии. Большинство консольных