|[значение 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-х-мегабайтной
конфигурации памяти. Вы можете попробовать установить основной
режим работы системы перед тем, как производить изменения, затем
модифицировать системные параметры, а потом снова проверить ра-
боту системы. Это наилучший подход к определению того, улучшает-
ся или ухудшается работа системы в результате изменения парамет-
ров.
Таблица 8.3
Зависимость ключевых параметров от размера памяти
+----------------+--------------------------------------------+
| Параметр | Размер памяти |
| +------------+----------------+--------------+
| | 2 M | 3 M | 4 M |
+----------------+------------+----------------+--------------+
|NBUF | 250 | 300 | 400 |