/etc/mknod /dev/ttyla c 5 1
Далее приводятся примеры создания специальных файлов
устройств:
/etc/mknod /dev/hcd0 b 1 0
/etc/mknod /dev/rhcd0 c 1 0
/etc/mknod /dev/hqp c 7 0
Учитывайте соглашения UNIX по установке имен дисковых
устройств. Вы можете присоединить цифру к мнемоническо-
му коду для указания номера драйвера. Имя специального
символ-ориентированного устройства должно иметь префикс
"r".

- 7-8 -

11. Постройте ядро, содержащее новые драйверы, используя
следующую команду:
./link_unix
sysadmsh выбор пользователя: Система->Конфигурация->Яд-
ро->Построение
Установка связей займет некоторое время, поэтому следу-
ет осуществлять эту операцию после того, как будут ус-
тановлены все драйверы.
12. Загрузите новое ядро, используя следующую команду :
/etc/shutdown
sysadmsh выбор пользователя: Система->Завершение
Появится сообщение о загрузке. По нажатию клавиши
<Return> активизируется перезагрузка системы и загру-
зится новое ядро.
________________________________________________________________
Примечание
Если возникнут проблемы с новым ядром, перезагрузите
/unix.old

________________________________________________________________
Глава 8
Настройка работы системы
________________________________________________________________

Введение 8-1
Примеры специального распределения ресурсов 8-3
Перераспределение ресурсов ядра с помощью утилиты
конфигурации 8-4
Использование командной строки configure 8-5
Реконфигурация в случае постоянных сообщений об
ошибках 8-7
Реконфигурация для выполнения задач 8-8
Когда настраивать и что настраивать 8-8
Специальные требования 8-8
Улучшение использования диска 8-9a
Что надо сделать когда добавляется память 8-10a
Организация файловой системы 8-11
Определение эффективного способа использования системы 8-14
Команда ps 8-14
Переменные пользователя $PATH 8-15
Использование средств измерения производительности
для диагностирования неэффективности системы 8-16
Использование памяти: Буферы и страницы 8-17
Использование буферов: sar -b 8-17
Производительность процесса: sar -q 8-18
Использование процессора: sar -u 8-19
Системные таблицы: sar -v 8-20
Свопинг: sar -w 8-21
Проверка работы системы по командам: timex 8-22
Описание настраиваемых системных параметров 8-23
Диски и буферы 8-23
Символьные буферы 8-25
Файлы, индексные дескрипторы файла и файловые
системы 8-26
Процессы, управление памятью и свопинг 8-29
Часы 8-31
Мультиэкраны 8-32
Очередь сообщений 8-32
Семафоры 8-33
Разделенные данные 8-34
Имя системы 8-35
Потоки данных 8-35
Очеpеди событий и устpойства 8-38
Аппаpатно-зависимые паpаметpы 8-38
Паpаметpы pазделения удаленных файлов 8-38

- 8-1 -

________________________________________________________________
Введение

Конструктор связей содержит утилиту configure(ADM), которая
используется для изменения числа параметров, влияющих на работу
системы. В этой главе объясняется как изменить эти параметры
применительно требованиям Вашей системы. Кроме того, включены
основные процедуры, которые помогут улучшить использование ре-
сурсов и работу системы.
Система UNIX оптимизирована для использования с разнообраз-
ными конфигурациями технических средств и является базой для
различных применений. Ядро, которое является сердцем операцион-
ной системы, управляет числом ресурсов постоянно использующихся,
освобождающихся и повторно подключающихся. Эти ресурсы включают:
буферы
некоторый набор блоков внутренней памяти, используе-
мых для хранения в них используемых данных. (Буферы
увеличивают эффективность, так как данные хранятся
во внутренней памяти, что уменьшает число операций
чтения с диска).
табличные элементы
некоторая область в каких-либо таблицах, которая ис-
пользуется ядром для хранения информации о текущих
задачах, ресурсах и событиях.
другие параметры
Другие определяемые значения, управляющие специаль-
ными ресурсами (такие как число доступных мультиэк-
ранов или количество сигнальных устройств).
Использование этих ресурсов определяется некоторыми грани-
цами, которые можно сузить или расширить, иногда за счет других
ресурсов.
Настройка работы системы обязательно потребует внимания при
первичной установке системы UNIX. Когда Вы первый раз загружаете
систему, она автоматически настроена на стандартную конфигура-
цию, которая удовлетворяет большинству ситуаций. Эта конфигура-
ция, однако, не может считаться образцом использования системы
для конкретного применения. Поэтому структура системы позволяет
провести ее реконфигурацию для увеличения эффективности конкрет-
ного использования системы по сравнению со стандартной конфигу-
рацией системы.

- 8-2 -

________________________________________________________________
Примечание
Хотя существуют средства, которые упрощают процесс настрой-
ки, мы не рекомендуем изменять параметры ядра без особой
необходимости.
________________________________________________________________
Существует несколько причин для перераспределения ресурсов
системы :
* Вы устанавливаете дополнительную память и поэтому хотите
распределить больше памяти.
* Постоянно появляются сообщения об ошибках, которые пока-
зывают, что заняты определенные ресурсы, такие как ин-
дексные дескрипторы файла или элементы таблицы.
* Время реакции системы постоянно слишком велико, а это оз-
начает, что ресурсы очень малы для эффективной работы
системы (например, очень мало установлено физической па-
мяти).
* Ресурсы необходимо перестроить для того. чтобы они отве-
чали требованиям конкретного приложения.
Кроме того, важно определить, какие из ресурсов оказались
излишними или неэффективно распределенными. Определенные настра-
иваемые параметры отвечают требованиям к системе, когда устанав-
ливается дополнительная память с целью поддержки системой боль-
шего количества пользователей. Однако, для компьютера,
используемого в качестве высоко-производительного персонального
компьютера или специализированного процессора, нет необходимости
увеличивать настраиваемые параметры ядра, когда устанавливается
дополнительная память. Конечно, настройка определенных парамет-
ров обычно связана с установкой дополнительной памяти для под-
держки большего количества пользователей (NBUF, NCLIST и др.)
может на самом деле уменьшить общую производительность, так как
эти параметры увеличивают размер требуемой области данных ядра,
что уменьшает доступный размер новой памяти для работы пользова-
телей. Проще говоря, ожидаемое использование Вашего компьютера и
Ваши планы, как это делать, должны использоваться как руководс-
тво при определении требований по настройке параметров.
Существуют другие стороны настройки конфигурации системы,
приводящие к отрицательному влиянию на работу системы. Например:
* организация файловой системы
* организация каталогов
* эффективность использования $PATH

- 8-3 -

* использование ps, sar, учета работы, профилирование ядра
и другие системные утилиты для определения степени ис-
пользования системы.
В этой главе также обсуждается вопрос о том, как убедиться,
что система работает с максимальной эффективностью в конкретных
областях применения.

Примеры специального распределения ресурсов

Специальные приложения зачастую требуют перераспределения
ключевых ресурсов системы для оптимизации работы. Например,
пользователи, работающие с большими базами данных, могут решить,
что необходимо увеличить число распределенных файлов по отноше-
нию к текущему числу файлов, установленных в системе. Пользова-
тели, которым не требуется специальных средств, например, таких
как управление сообщениями, могут решить, что они получат неко-
торое увеличение скорости работы системы при отсоединении этих
средств.
Решение об оптимизации использования конкретных ресурсов
рассматривается как решение о настройке ядра. Каждый ресурс или
ограничение представляется отдельным параметром ядра. Текущие
значения этих параметров изменяются с помощью утилиты configure.

- 8-4 -

________________________________________________________________
Перераспределение ресурсов ядра с помощью утилиты CONFIGURE

Утилита configure является легко используемой меню-ориенти-
рованной программой, которая представляет каждый ресурс и запрос
на модификацию, устанавливает распределение соответствующих ре-
сурсов, редактирует ядро, включая процедуры установки среды
link_unix, копирует ядро в корневой каталог, перезагружает и
тестирует новое ядро.
Чтобы изменить какой-либо параметр ядра необходимо выпол-
нить следующие действия:
1. Перезагрузите систему и выберите однопользовательский
режим(режим сопровождения).
2. Используйте команду custom (ADM) для того, чтобы опреде-
лить установлен ли пакет конструктора связей (LINK). Ес-
ли нет, - установите его с помощью команды custom.
3. После того, как Вы убедитесь, что конструктор связей ус-
тановлен, введите следующие команды:
cd /etc/conf/cf.d
./configure

    sysadmsh выбор пользователя: Система-> Конфигурация->


Ядро-> Параметры
4. На экране отобразится меню утилиты configure:
+---------------------------------------------------------------+
| 1. Дисковые буферы |
| 2. Символьные буферы |
| 3. Файлы, индексные дескрипторы и файловые системы |
| 4. Процессы, управление памятью и своппинг |
| 5. Часы |
| 6. Мультиэкраны |
| 7. Очередь сообщений |
| 8. Семафоры |
| 9. Разделенные данные |
| 10. Имя системы |
| 11. Потоки данных |
| 12. Очередь событий и устройства |
| 13. Аппаратно-зависимые параметры |
| 14. Параметры разделенных удаленных файлов |
| |
| Выберите категорию параметров, подлежащих реконфигура- |
| ции, набрав ее номер от "1" до "14" или "q" для выхода: |
+---------------------------------------------------------------+

- 8-5 -

Выберите категорию с помощью ввода соответствующего но-
мера. Тогда на экране отобразятся один за другим ресурсы
этой категории, каждый со своим текущим значением. Вве-
дите новое значение для этого ресурса или оставьте его
текущее значение простым нажатием клавиши <Return>. Пос-
ле того как будут отображены все ресурсы выбранной кате-
гории, утилита configure возвращается к меню со списком
категорий параметров. Выберите другую категорию парамет-
ров для изменения или покиньте утилиту нажатием клавиши
"q".
________________________________________________________________
Примечание
Следует отметить, что программный пакет, соответствующий
изменяемому параметру, должен существовать, чтобы действительно
использовать ресурс соответствующий параметру. Например, пакет
Stream должен быть установлен для параметров потоков, чтобы был
эффект.
________________________________________________________________
5. После того, как Вы закончите изменять параметры, надо
включить их в новое ядро. Введите следующую команду:

    ./link_unix


    sysadmsh выбор пользователя: Система-> Конфигурация->


Ядро-> Построение
Эта команда собирает каждый из модулей ядра в новое яд-
ро, которое должно быть теперь установлено. Следуйте ин-
струкциям раздела "Тестирование и установка нового яд-
ра" в главе "Добавление драйверов устройств с помощью
конструктора связей".

Использование командной строки configure

Утилита configure имеет также интерфейс командной строки,
используемый для разработчиков программных приложений. Например,
разработчик баз данных решает, что ему необходимо разместить од-
новременно 70 файлов вместо 50, тогда он может использовать про-
цедуру установки среды для того, чтобы выполнить реконфигурацию.
Для того, чтобы определить текущее значение некоторого ресурса
конфигурации, используя интерфейс командной строки, следует
ввести:


- 8-6 -

Ъ2./configure -y RESOURCE
где RESOURCE - имя настраиваемого параметра (набирается
прописными буквами). Для того чтобы изменить значение некоторого
ресурса, используя командную строку, введите:
Ъ2./configure RESOURCE=<значение>
Этот интерфейс является дополнением к интерактивному; одни
и те же ресурсы могут включаться в конфигурацию с помощью обоих
интерфейсов.
Следующий раздел описывает действия необходимые для рекон-
фигурации ресурсов ядра.


- 8-7 -

________________________________________________________________
Реконфигурация в случае постоянных сообщений об ошибках

Бывают ситуации, когда операционная система выдает сообще-
ния, что превышены системные ограничения. Эти сообщения выдаются
в виде строк на экране консоли. Некоторые из них являются чисто
информационными. Другие предшествуют аварийному состоянию систе-
мы, в этом случае выводятся дополнительные диагностические сооб-
щения и система "подвисает", требуя вмешательства для перезаг-
рузки. Не следует изменять конфигурацию ядра, если сообщение
получено один раз, или даже несколько раз, а только в том слу-
чае, когда одно и тоже сообщение появляется постоянно.
Если Вы встречаете одно из сообщений перечисленных в табли-
це 8.1, обратите внимание на соответствующие параметры настройки
для получения дополнительной информации. Если возникла необходи-
мость в регулировке ресурса, попробуйте увеличить для начала его
значение на небольшую величину, если проблема остается, то сле-
дует увеличить значение ресурса на 100% или более относительно
его первоначального значения. Если проблема все еще не будет ре-
шена, то следует более детально исследовать ситуацию и опреде-
лить, какая программа или последовательность приводят к ошибке.


- 8-7a -

Таблица 8.1
Сообщения об ошибках и связанные с ними настраиваемые параметры
+-----------------------------------------------+--------------+
| Сообщения об ошибках ядра | Параметры |
+-----------------------------------------------+--------------+
|iget-inode table overflow | NINODE |
|(переполнение таблицы iget-inode) | |
+-----------------------------------------------+--------------+
|timeout table overflow | NCALL |
|(переполнение таблицы таймаутов) | |
+-----------------------------------------------+--------------+
|file table overflow | NFILE |
|(переполнение таблицы файлов) | |
+-----------------------------------------------+--------------+
|mfree map overflow n(*) | SPTMAP |
|(переполнение плана mfree) | |
+-----------------------------------------------+--------------+
|Region table overflow | NREGION |
|(переполнение таблицы регионов) | |
+-----------------------------------------------+--------------+
|configured value of NOFILES n(*) is less than | NOFILES |
|minimum(greater of the maximum) | |
|[значение NOFILES в конфигурации меньше | |
|минимального(больше максимального)] | |
+-----------------------------------------------+--------------+
|stropen: out of streams | NSTREAM |
|(выход за возможное число открытых потоков) | |
+-----------------------------------------------+--------------+
|swapdel - too few free pages | MINASMEM |
|(удален свопинг - очень мало свободных страниц)| |
+-----------------------------------------------+--------------+
|stropen: out of stream | NSTREAM |
|(выход за возможное число открытых потоков) | |
+-----------------------------------------------+--------------+
|stropen: out of queues | NQUEUE |
|(выход за число возможных очередей | |
|открытых потоков) | |
+-----------------------------------------------+--------------+
(*) Значение n указывает действительное значение в сообще-
нии об ошибке.

- 8-8 -

________________________________________________________________
Реконфигурация для оптимальной работы системы

Система сконфигурирована таким образом, чтобы большое коли-
чество ресурсов ядра было предназначено для решения большинства
общих задач, таких как чтение и запись на диск, однако выполне-
ние большинства специальных задач (таких как связь между проме-
жуточными процессами) не должно игнорироваться. Этот баланс мо-
жет быть установлен в соответствии с индивидуальными
требованиями.

Когда настраивать и что настраивать

Некоторые системы поддерживают одновременную работу мно-
жества пользователей. При добавлении пользователей в такую сис-
тему обычно добавляется дополнительная память и настраиваются
системные параметры таким образом, чтобы ядро работало более эф-
фективно. В основном это заключается в том, что распределяется
больше памяти под область данных ядра увеличением размера струк-
туры данных ядра. Это в основном позволяет системе поддерживать
работу большего числа пользователей. Однако, так как структуры
данных увеличились, то уходит больше времени для их просмотра, и
действительное увеличение определенных параметров может на самом
деле замедлить работу системы. Например, увеличение параметра
NPROC позволит системе поддерживать больший список (таблица про-
цессов) активных процессов. Это может оказать неблагоприятное
влияние на планировщик ядра, так как он теперь вынужден просмат-
ривать этот большой список каждый раз, когда устанавливает, ка-
кой процесс должен идти следующим. Кроме того, так как увеличена
область данных ядра за счет увеличения размера таблицы, остается
меньше памяти для пользовательских процессов, что может также
снизить общую производительность.

Требования в исключительных ситуациях

Часто использование Вашей системы ставит Вас перед необхо-
димостью настраивать определенные параметры в отдельных случаях.
Типичным случаем является требование создавать очень большие
файлы. Это может быть совершено посредством создания привелеги-
рованного пользователя или модификации "ulimit" для отдельного
процесса, который Вы выполняете как суперпользователь. Альтерна-
тивным решением данного вопроса может быть изменение системного
значения ULIMIT для всех пользователей. Параметр ULIMIT и другие
часто встречающиеся ограничения собраны в таблице 8.2. Прежде
чем сделать конкретные шаги по перестройке конфигурации, следует
обратиться к разделу "Описание настраиваемых параметров" для по-
лучения более подробной информации.

- 8-9 -

Таблица 8.2
Настройка для особых случаев
+------------------------------------------+-------------------+
| Ожидаемое улучшение | Параметры |
+------------------------------------------+-------------------+
|Улучшение работы системы* при установке | NBUF,NHBUF |
|дополнительной памяти | |
+------------------------------------------+-------------------+
|Другие параметры связанные с производи-| NAUTOUP,MAXSLICE,|
|тельностью системы | BDFLUSHR, |
| | AGEINTERVAL |
| | (см. также стра- |
| | ничные парамет- |
| | ры) |
+------------------------------------------+-------------------+
|Расширение системных ограничений в случае| NCALL,NINODE, |
|установки дополнительной памяти (обеспече-| NSINODE,NFILE, |
|ние большего числа пользователей; уменьше-| NPROC,NREGIONS, |
|ние возможности системных ошибок в случае| NCLIST (см.так- |
|сильной загрузки и др.) | же сообщения, |
| | средства синхро- |
| | низации и парамет-|
| | ры разделенной па-|
| | мяти) |
+------------------------------------------+-------------------+
|Пользователю необходимо создавать большие| ULIMIT |
|файлы | |
+------------------------------------------+-------------------+
|Каждому пользователю необходимо открывать| NOFILES |
|больше файлов | |
+------------------------------------------+-------------------+
|Каждому пользователю необходимо запускать| MAXUP |
|большее число процессов | |
+------------------------------------------+-------------------+
|Другие системные ограничения, которые мо-| SHLBMAX,FLCKREC, |
|гут встретиться | SPTMAP,NUMXT, |
| | NUMSXT,PRFMAX, |
| | (см. также |
| | STREAMS и пара- |
| | метры RFS) |
+------------------------------------------+-------------------+
|Разное | PUTBUFSIZE, |
| | DO387CR3 |
+------------------------------------------+-------------------+

- 8-9a -

* Учтите, что увеличение размера кэш-буфера увеличивает
возможность того, что часто используемые данные будут вызываться
из памяти, а не считываться с диска. В зависимости от конкретно-
го использования системы, увеличение случаев повторного исполь-
зования блоков данных может не вести к общему увеличению произ-
водительности системы. Для некоторых же сценариев использования
системы это может дать значительное улучшение работы. Смотри
"Установление размеров кэш-буфера".

Улучшение использования диска

Ввод/вывод с диска может стать узким местом в работе систе-
мы. Существует три ступени в настройке дисковой подсистемы для
ее лучшего использования.
* Выбор надлежащего число буферов.
* Организация файловой системы с минимизацией работы диска.

- 8-10 -

Установка размеров кэш-буфера

Параметр NBUF определяет количество буферов по 1К в систем-
ном кэш-буфере. В эти буфера помещаются недавно использованные
данные на тот случай, если эти данные снова понадобятся. Если
запрос на чтение или запись может быть удовлетворен использова-
нием кэш-буфера, а не диска, производительность системы увеличи-
вается за счет того, что операции с памятью проводятся значи-
тельно быстрее, чем дисковые операции. NHBUF указывает число
хэшированных областей памяти в кэш-буфере. Чем больше буферов,
тем больше случаев, когда данные могут быть найдены в буфере, а
не считывались с диска, что занимает много времени. Соотношения
удачных попыток чтения и записи в кэш, отображаемые с помощью
sar-b показывают насколько эффективно работают буфера системы.
Значение параметра NHBUF должно быть порядка 2; кроме того, зна-
чение NBUF деленное на значение NHBUF должно приблизительно рав-
няться 4.
Значения NBUF и NHBUF в файле mtune являются хорошей отп-
равной точкой для кэш-буфера. Эти значения тесно связаны с опти-
мизацией наибольшей рабочей нагрузки системы. Увеличивая NBUF и
NHBUF до некоторой точки, можно улучшить производительность сис-
темы. Система с 2 мегабайтами памяти может, как правило, отдать
около 250 К памяти , тогда как система с 4 мегабайтами - около
400 К памяти под буфера. Однако, если размещено слишком много
буферов, то не хватает памяти для эффективной работы пользова-
тельских процессов и увеличивается свопинг, выполняемый систе-
мой. Свопинг обычно стоит больше для эффективности системы,
чем выделение большего буферного пространства. Если команда
sar-b, показывает, что в Вашей системе swpot/s больше чем 1.0,
то добавление буферов нерационально. Кроме того, при увеличении
числа буферов, обслуживаемых ядром, увеличивается время на выпол-
нение программ ядра, отвечающих за распределение и освобождение
буферов.
Если Вы решили изменить число буферов, то после того, как
система проработала день или около того, проверьте производи-
тельность системы, особенно чрезмерную активность операций сво-
пинга. Если такая активность имеет место, то уменьшите число бу-
феров.

- 8-10a -

Что делать при добавлении памяти

В прошлом, администраторы системы UNIX с помощью программ
увеличивали все параметры настройки при добавлении памяти на ми-
ни- и суперминикомпьютеры. Это обычно давало возможность системе
поддерживать большее число пользователей без столкновения с ог-
раничениями системы во время интенсивной нагрузки системы. Для
однопользовательской среды персонального компьютера, однако, не
может появиться потребность в увеличении настраиваемых парамет-
ров ядра. И по причинам, указанным выше, сохранение начальных
ограничений системы может обеспечить оптимальную производитель-
ность, даже когда устанавливается дополнительная память.

- 8-11 -

Как показано в таблице 8.1, значения параметров, принятые
по умолчанию, определены в файле mtune базовой системы примени-
тельно к системе с 2 мегабайтами памяти, для которой рекоменду-
ется минимальные значения размеров памяти. Если Ваша система ис-
пользует конфигурацию с большим числом пользователей, 5 и более
пользователей, Вы можете добавить дополнительную память и увели-
чить некоторые параметры так, чтобы системные ограничения не бы-
ли превышены, и пропорционально увеличить размер кэш-буфера.Зна-
чения некоторых параметров даны для 3-х- и 4-х-мегабайтной
конфигурации памяти. Вы можете попробовать установить основной
режим работы системы перед тем, как производить изменения, затем
модифицировать системные параметры, а потом снова проверить ра-
боту системы. Это наилучший подход к определению того, улучшает-
ся или ухудшается работа системы в результате изменения парамет-