-------------------------------------+--------------+ |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 | |NHBUF |   64 |   64 | 128 | |NCALL |   30 |   40 |   50 | |NINODE | 150 | 200 | 300 | |NS5INODE | 150 | 200 | 300 | |NFILE | 150 | 200 | 300 | |NREGION | 210 | 250 | 300 | |NCLIST | 120 | 140 | 170 | |NPROC | 100 | 120 | 150 | +----------------+------------+----------------+--------------+ Организация файловой системы В этом разделе описываются действия, предпринимаемые для уменьшения числа обращений к файлам. При использовании файловой системы блоки отдельных файлов имеют тенденцию распространяться по всему диску, и следовательно ввод/вывод становится менее эф- фективным. Из-за этого распространения образуется плохой порядок блоков и плохая организация каталога. - 8-12 - Организация списка свободных областей в файловой структуре Свободные блоки размещаются файловой структурой таким обра- зом, чтобы обеспечить эффективное проведение операций чтения и записи файлов. Список свободных областей создается тогда, когда создается файловая система с помощью команды mkfs(ADM). Однако, когда Вы начинаете изменять файлы(т.е. менять их размеры или пе- ремещать их), эффективность работы уменьшается. Когда файлы соз- даются первый раз, они состоят из блоков, взятых из списка сво- бодных областей. Некоторые из блоков распределяются файлам не по порядку. Как Вы можете видеть, список свободных областей также распространяется по всему диску, как и блоки распределенные фай- лам и освобожденные блоки. Организация каталога Организация каталогов также влияют на производительность операций ввода/вывода. Проблема возникает во время перемещения пользователем своих файлов. Когда файл удаляется из каталога, тогда индексный дескриптор этого файла аннулируется. Из-за этого образуется неиспользуемое место для этого дескриптора; через неко- торое время число таких пустых мест становится слишком большим. Если Вы имеете каталог для 100 файлов и удаляете первые 99 файлов, то этот каталог содержит 99 пустых неиспользуемых мест, по 16 байтов каждое, которые предшествуют активному индексному дес- криптору файла. Разумеется, пока каталог не реорганизован на диске, он будет сохранять тот максимальный размер, который когда-то получил. Восстановление хорошей организации файловой системы Не существует автоматических путей решения этих проблем; однако, Вы можете вручную реорганизовать файловую систему. Су- ществует несколько путей реорганизации. Учтите, что в случаях 1 и 3 , приведенных ниже, файловая система(ы) должна(ы) быть раз- монтирована(ы). 1. Для реорганизации списка свободных участков, активизи- руйте команду fsck(ADM), используя опцию -s ________________________________________________________________ Примечание Реорганизация списка свободных участков не поддерживает файловые системы AFS. ________________________________________________________________ - 8-13 - 2. Для реорганизации отдельных структур каталога, исполь- зуйте команду cpio(C) -pdm для копирования их во времен- ное новое место, удалите эти первичные структуры, а затем используйте команду cpio -pdm для копирования их обратно на первоначальное место.  Используйте следующую командную строку: Ъ2find Ъ1sourcedirЪ2 -print | cpio -pdm destdir где sourcedir - имя исходного каталога; destdir - имя каталога, в который Вы перемещаете конкретную структу- ру. После получения подтверждения того, что вся структу- ра полностью скопирована, удалите полностью исходный ка- талог. Наконец, произведите обмен указанных в командной строке, описанной выше, имени каталога, в который было проведено перемещение исходного каталога, на имя исходного каталога, и выполните эту команду снова. После удаления временного каталога, структура Вашего исходного каталога будет реорганизована. 3. Для реорганизации файловой системы полностью использует- ся выбор sysadmsh "Backups(Создание резервных копий)" для выполнения незапланированного дублирования с нулевым уровнем файловой системы. (Подробное описание дано в разделе "Создание резервных копий файловых систем" этого руководства). Когда операция создания резервной копии будет завершена, следуйте инструкциям по восстановлению всей файловой системы. 4. Если Вы имеете более одного диска, установите равновесие распределения файловых систем. - 8-14 - ________________________________________________________________ Определение эффективного способа использования системы После того, как произведена настройка ядра и функций систе- мы, и организована файловая система, следующим шагом в увеличе- нии производительности системы будет выполнение служебных функ- ций и проверка того, уменьшилось ли время первоначальной загрузки. Ответственный администратор системы должен проверять следующее : * не смешиваются менее важные работы с более важными * устранены ли ненужные действия * спланированы ли определенные работы для времени, когда система не занята * эффективны ли определенные пользователем элементы, такие как Ъ1profileЪ3 и $PATH Команда ps Команда ps(C) используется для получения информации об ак- тивных процессах. Команда дает "моментальную" картину того, что сейчас происходит, которая бывает очень полезна, когда Вы пытае- тесь понять, какие процессы происходят в системе. Она вероятно изменится к тому времени, когда появится вывод команды; однако, Вас могут заинтересовать значения TIME (минуты и секунды работы процессора для этих процессов) и STIME (время начала процесса). Когда Вы определите "ворующий" процесс (тот, который захва- тывает все больше ресурсов системы за период времени, в течение которого Вы наблюдаете за ним), Вы должны определить, кто его запускает. Возможно, что такой процесс должен быть немедленно остановлен командой kill(C). Если это действительно выходящий из под контроля процесс, то он будет продолжать поглощать системные ресурсы, пока система не зависнет. Для такого "неубиваемого" процесса единственным средством прекратить его является перезаг- рузка. Когда Вы заметите процесс, который выполняется слишком дол- го, Вы можете использовать команду cron(C) для того, чтобы вы- полнить задание в течение превышающего времени. - 8-15 - Переменные пользователя $PATH $PATH просматривается при каждом выполнении команды. Перед отображением на экран сообщения "not found(не найдено)" система должна просмотреть каждый каталог $PATH. Этот просмотр требу- ет времени как процессора, так и диска. Если диск или процессор являются узким местом в работе системы, то изменения связанные с ними, могут улучшить производительность системы. Вы должны проверить среди пользовательских переменных: * Эффективность пути $PATH читается слева направо, так чтобы определить место- нахождение команды в первом из перечисленных путей (/bin и /usr/bin). Сделать так, чтобы некоторые каталоги не повторялись больше одного раза для некоторой команды. * Удобство и человеческий фактор Пользователи могут отдать предпочтение просмотру текущего каталога перед тем как просматривать их из перечислен- ных путей (:/bin). * Длину пути В основном, переменная $PATH должна иметь как можно мень- ше элементов. * Ъ1Просмотр больших Ъ3каталогов По возможности большие каталоги должны быть обойдены. Поместите большие каталоги в конец переменной $PATH. - 8-16 - ________________________________________________________________ Использование средств измерения производительности для ди- агностирования эффективности системы Операционная система содержит ряд средств для измерения производительности системы. Администратор системы может исполь- зовать эти средства для локализации области проблемы. В этом разделе описаны следующие средства измерения продуктивности: sar работает с внутренними системными регистрами совокуп- ной деятельности системы и подготавливает отчеты по различным аспектам работы системы. timex подготавливает отчеты по работе системы и по процес- сам во время выполнения команды или программы. Внутренняя активность измеряется числом содержащихся в ядре счетчиков. Каждый раз при выполнении операции наращивается соот- ветствующий счетчик. Утилита sar(ADM) используется для диагнос- тирования системных проблем. Двумя наиболее критическими для те- кущего контроля областями являются использование памяти и центрального процессора. Это средство позволяет Вам проверить значение этих счетчиков. В следующих разделах приведены примеры использования этих средств. В следующих разделах также обсужда- ются функции, которыми можно управлять с помощью утилиты sar. В этом разделе описываются опции sar c анализом выходной информа- ции по измерениям, полученных с помощью этих опций. Sar можно использовать для того, чтобы собирать данные о работе системы, а также для выбора того, что было накоплено в информационных фай- лах, созданных sa1 и sa2 . sa1 и sa2 инициируются элементами, помещенными в файл crontab sys. Основной синтаксис команды sar имеет следующий вид: Ъ2 sar <опция> t где <опция> одна из опций, описанных в следующих разделах. t выбранный интервал в секундах, может принимать значения 5 и более. Вы должны обеспечить работу системы в течении выбранного интервала времени, если Вы хотите видеть данные в реальном вре- мени; в противном случае будут отображены ранее собранные данные из каталога /usr/adm/sa. Для получения большей информации по более полному об'ему собираемых данных смотрите руководство по команде sar(ADM). - 8-17 - Эти примеры даны для системы с 2 мегабайтами основной памя- ти и жестким диском емкостью 30 мегабайт. Выходная информация команды имеет типичные значения для пользовательской загрузки системы. Значения, которые Вы получаете, могут отличаться от значений в примерах, в зависимости от Вашего программного прило- жения или контрольной задачи. Во время настройки системы реко- мендуется использовать контрольную задачу или ставить систему под стандартную нагрузку, чтобы настраивать систему непосредс- твенно на Ваше конкретное применение. Использование памяти: буферы и страницы Определяя число системных дисковых буферов (или явно ис- пользуя утилиту configure, или неявно, используя значения по умолчанию), эффективно разделите доступную память между двумя пулами: дисковым буферным пулом и страничным пулом. Страничный пул содержит программы, которые должны выполняться, и кэш-копии недавно использованных страниц программ. Если страничный пул слишком мал для загрузки, возложенной на систему, то система бу- дет постоянно обменивать страницы туда и обратно, чтобы только поддержать текущие процессы. Если страничный пул только слегка занижен в размере, эффект будет виден не в увеличенном обмене, а в уменьшении работоспо- собности кэша при повторном прогоне одних и тех же программ. Это означает, что страниц достаточно для эффективной обработки теку- щих программ, но их не хватает для сохранения часто используемых страниц в памяти для того, чтобы имелся потенциальный доступ к ним. При использовании команды sar Вы можете определить, сколько программ должны участвовать в обмене в течении данного интервала времени. Если очевиден чрезмерный свопинг, Вы можете перераспре- делить память так, чтобы увеличить страничный пул. (См. "Сво- пинг: sar -w" для информации о текущем контроле свопинга). Использование буферов: sar -b Опция -b позволяет получить отчет о работе буферов: bread/s Среднее число физических блоков, считываемых в системные буфера с диска (или другого блок-ори- ентированного устройства) в секунду. lread/s Среднее число логических блоков, считываемых из системных буферов в секунду. %rcache Доля логического чтения из системного кэш-буфера (100% минус отношение breads/lreads). - 8-18 - bwrit/s Среднее число физических блоков, записываемых из системных буферов на диск (или другое блок-ори- ентированное устройство) в секунду. lwrit/s Среднее число логических блоков, записываемых в системные буфера в секунду. %wcache Доля операций логической записи в кэш-буфер (100% минус отношение bwrit/s к lwrit/s). pread/s Среднее число запросов физического чтения в се- кунду. pwrit/s Среднее число запросов физической записи в се- кунду. Наиболее интересным значением является удачное соотношение %rcache и %wcache, которое показывает эффективность работы сис- темных буферов. Если %rcache опускается ниже 90, или %wcache опускается ниже 65, то возможно улучшить работоспособность сис- темы за счет увеличения числа буферов. Пример выходной информации sar -b: +--------------------------------------------------------------- | unix unix 3.2 2 386i 02/18/89 |16:32:57 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s |16:33:07 3 39 93 1 16 91 0 0 |16:33:17 4 40 90 2 16 87 0 0 |16:33:27 4 41 90 3 7 64 0 0 | Average 4 40 91 2 13 84 0 0 |(среднее) Этот пример показывает что буфера не являются узким местом, так как все данные находятся в приемлемых пределах. Производительность процесса: sar -q Опция sar -q позволяет определить среднее значение длины очереди в то время как она существует и процент времени, в тече- нии которого она существует. runq-sz Прохождение очереди процессов в памяти; обычно это значение должно быть меньше 2. Если это зна- чение постоянно больше, то это означает, что про- цессор работает на пределе. %runocc Процент времени, занимаемого очередью процессов; чем больше это значение, тем лучше. swpq-sz Обмен очереди процессов на свопинг; чем меньше это значение, тем лучше. %swpocc Процент времени занятости очереди на свопинг; чем меньше это значение, тем лучше. - 8-19 - Пример выходной информации sar -q: +--------------------------------------------------------------- | unix unix 3.2 2 386i 02/18/89 | 11:00:56 runq-sz %runocc swpq-sz %swpocc | 11:01:07 1.7 98 1.5 36 | 11:01:17 1.0 63 1.0 31 | 11:01:27 1.0 58 1.0 49 | Average 1.3 74 1.2 39 |(среднее) В этом примере использование процессора (%runocc) меняется в пределах от 58% до 98%, во время того, как очередь на свопинг не является пустой (%swpocc) и колеблется от 31% до 49%. Это оз- начает, что память не является узким местом в системе, однако, увеличение памяти поможет уменьшить активность страничного обме- на. Если %runocc принимает значение больше 90% и runq-sz больше 2, то процессор сильно загружен, и время ответа системы увеличи- вается. В этом случае может потребоваться установка дополнитель- ного процессора для получения удовлетворительной реакции систе- мы. Если %swpocc больше 20%, то добавление памяти или нескольких буферов поможет уменьшить активность страничного обмена. Использование процессора: sar -u Использование процессора проверяется с помощью команды sar- u (значение задано по умолчанию). В каждый данный момент процес- сор может быть либо занят работой, либо простаивать. В рабочем состоянии процессор может находиться либо в пользовательском, либо в системном режиме. В нерабочем состоянии процессор может либо ожидать завершения ввода/вывода, либо просто не иметь рабо- ты для выполнения. Опция -u команды sar показывает процент вре- мени, в течение которого процессор находится в системном режиме (%sys), пользовательском режиме (%user), в состоянии ожидания завершения ввода/вывода (%wio) и в состоянии простоя(%idle). При обычном использовании разделения времени %sys и %usr имеют примерно равные значения. Для специальных приложений каж- дый из этих параметров может быть больше других, и это не гово- рит о какой-либо ненормальности в работе системы. Большая вели- чина %wio обычно означает, что диск является узким местом в работе. Большое значение %idle, наряду с ухудшением реакции сис- темы, может означать стесненные рамки памяти; время, которое тратится на ожидание освобождения памяти, отражено в %idle. Колонка "idle" (процент простоя) может также обеспечить не- которое понимание сущности работы системы. Значения, находящиеся в этой колонке, обычно колеблются между 40 и 100 процентами, да- - 8-20 - же при большом числе активных пользователей. Если это значение постоянно опускается ниже 30%, то основное соревнование за ре- сурсы не подразумевает соревнование за память вообще; критичес- ким ресурсом является мощность процессора. (Выполните команду ps(C) для того, чтобы определить, что чрезмерное использование процессора не вызвано процессом-захватчиком, который захватывает каждый резервный цикл процессора.) Если работает большое количество пользователей, то может помочь переход на серийные логические платы, если Вы используете более общие платы ввода/вывода. Логические платы берут нагрузку процессора больше на себя, чем добавляют ему работу. Кроме того, Вы должны просмотреть /usr/spool/crontab, чтобы определить не стоят ли задания в очереди во время пиковой наг- рузки, когда они могли бы выполняться при свободном процессоре. Используйте команду ps для определения того, какой процесс силь- но загружает систему. Поощряйте пользователя запускать большие, не-интерактивные команды (такие как nroff(CT) или troff(CT)) только во время небольшой загрузки системы. Возможно также за- пускать такие команды с меньшим приоритетом посредством исполь- зования команд nice(C) или batch(C). Пример использования коман- ды sar-u: +--------------------------------------------------------------- | unix unix 3.2 2 386i 02/18/89 | 09:20:08 %usr %sys %wio %idle | 09:40:12 6 7 2 86 | 10:00:03 7 9 3 80 | 10:20:07 14 16 10 61 | Average 9 11 5 76 |(среднее) Системные таблицы: sar - v Опция -v сообщает о статусе процесса, индексного дескрип- тора файла, файла, записи разделенной памяти и файловых таблиц разделенной памяти. Из этого сообщения Вы можете узнать, нужда- ются ли в модификации системные таблицы. proc-sz Число элементов таблицы процессов, которые в насто- ящее время используются или распределены в ядро систе- мы. inod-sz  Число элементов таблицы индексных дескрипторов фай- лов, которые в настоящее время используются или рас- пределены в ядро системы. file-sz Число элементов таблицы файлов, которые в настоящее время используются или распределены в ядро системы. ov Число случаев переполнения. (Одна колонка для каж- дого из выше перечисленных понятий). - 8-21 - lock-sz Число элементов таблицы разделенной памяти, которая в настоящее время используются или распределено в ядре системы. fhdr-sz Больше не применяется. Значения даны как уровень/размер таблицы. Пример использования команды sar -v: +--------------------------------------------------------------- | unix unix 3.2 2 386i 02/18/89 | 17:36:05 proc-sz ov inod-sz ov file-sz ov lock-sz fhdr-sz | 17:36:35 17/40 0 39/80 0 29/80 0 0/50 0/0 | 17:37:05 19/40 0 46/80 0 35/80 0 0/50 0/0 | 17:37:35 18/40 0 43/80 0 34/80 0 0/50 0/0 Этот пример показывает, что все таблицы достаточно велики, чтобы не иметь переполнений. Размеры можно уменьшить для того, чтобы оставить больше памяти, если эти значения являются макси- мальными. Свопинг: sar -w Опция -w предоставляет отчет о свопингах и действии перек- лючения. Далее следует некоторые целевые значения параметров и пояснения. swpin/s Число перемещений в память за секунду. bswin/s Число 512-байтовых блоковых единиц (блоков), пере- мещаемых во время свопинга в память (включая начальную загрузку некоторых программ) в секунду. swpot/s Число перемещений из памяти в область свопинга на диске в секунду. Если это число больше 1, то надо уве- личить память или уменьшить буфера. bswot/s Число блоков, перемещаемых в секунду при свопинге из памяти. pswch/s Переключения процесса в секунду. Это значение долж- но быть от 30 до 50 при работе 4-6 пользователей систе- мы. - 8-22 - Пример вывода команды sar -w: +--------------------------------------------------------------- | unix unix 3.2 2 386i 02/18/89 | 09:20:08 swpin/s bswin/s swpot/s bswot/s pswch/s | 09:40:12 0.0 0.0 0.0 0.0 37 | 10:00:03 0.0 0.0 0.0 0.0 39 | 10:20:07 0.0 0.0 0.0 0.0 39 | Average 0.0 0.0 0.0 0.0 38 |(среднее) Этот пример показывает, что памяти достаточно для текущей работы пользователей, так как свопинга нет. Проверка работы системы по командам: timex Команда timex хронометрирует команду и сообщает о действиях системы, которые отмечены во время выполнения команды. Если в это время не выполнялись другие программы, то timex поможет вы- яснить, какие ресурсы использует данная команда во время своего выполнения. Потребление системных ресурсов для каждой программы приложения может быть накоплено и использовано для перенастройки слишком перегруженных ресурсов. timex может быть использована следующим путем: $ timex -s  <программа приложения> Ваша программа приложения будет работать нормально. Когда Вы завершите и выйдете из нее, то результат работы timex появит- ся на Вашем экране. Вы можете получить ясную картину того, какие системные ресурсы использовала Ваша программа. - 8-23 - ________________________________________________________________ Описание настраиваемых системных параметров Следующий раздел посвящен анализу настраиваемых системных параметров, определенных в файле /etc/conf/cf.d/mtune. Категории параметров следующие: Диски и буферы Символьные буферы Файлы, индексные дескрипторы файлов и файловые системы Процессы, управление памятью и свопинг Часы Мультиэкраны Очередь сообщений Сигнальные устройства Разделенные данные Имя системы Потоки данных Очереди событий и устройства Аппаратно-зависимые параметры Разделенные параметры удаленных файлов Диски и буферы NDISK Число дисковых драйверов, присоединенных к системе. Этот параметр устанавливается во время загрузки. NBUF Определяет, сколько распределять системных буферов размером 1К. Кэш данных является матрицей памяти и содержит информацию о файлах на диске. Кэш имеет тенденцию к увеличению с увеличением числа буферов. Кэш уменьшается с увеличением числа доступных дис- ков и поэтому может улучшить общую продуктивность системы. Эти значения обычно находятся в пределах от 100 до 600. Каждый буфер содержит 1076 байт. Ко- личество хэш-буферов по 1К (NHBUF) должно быть уве- личено наряду с количеством системных буферов (NBUF) для достижения оптимальной продуктивности. NPBUF Определяет, число буферов физического ввода/вывода, которые надо распределить. Требуется один буфер ввода/вывода для каждой операции физического чтения или записи. Каждый элемент содержит 52 байта. Зна- чение по умолчанию - 20. - 8-24 - NHBUF Определяет сколько "корзин для мусора" распределить для буферов в 1К. Это используется для преимущест- венного поиска буфера по заданному номеру устройс- тва или номеру блока перед прямолинейным просмотром всего списка буферов. Это значение должно быть сте- пенью 2. Каждый элемент содержит 12 байтов. Значе- ние NHBUF должно быть выбрано таким образом, чтобы NBUF, разделенное на NHBUF, равнялось приблизитель- но 4. MAXBUF Максимально возможное число кэш-буферов. Это число буферных описательных заголовков в ядре. Число бу- феров меньшее этого может быть автоматически внесе- но в конфигурацию ядра во время загрузки, в зависи- мости от того, сколько имеется в распоряжении ферритовой памяти. Если число NBUF не нулевое, то именно NBUF буферов должно стоять в конфигурации, и не имеет смысла MAXBUF делать больше, чем NBUF. Ес- ли NBUF равно нулю, то ядро будет конфигурировано с ненулевым числом MAXBUF автоматически. NREGION Определяет сколько элементов таблицы регионов надо распределить. Каждый элемент NREGION содержит 36 байтов. Большинство процессов имеет три региона: текстовый, регион данных и стек. Дополнительные об- ласти нужны для каждого из присоединенных разделен- ного сегмента памяти и разделенной библиотеки (текстовой или с данными). Однако, элементы таблицы регионов для текста программы с "разделенным текс- том" будут разделяться всеми процессами, обращающи- мися к этой программе. Каждый разделенный сегмент памяти принадлежит одному или более процессам, ко- торые используют другие элементы таблицы регионов. Хорошее начальное значение для этого параметра - это примерно в 3,5 раза превышающее NPROC. Если система выходит за рамки таблицы регионов, то на системной отображается следующее сообщение: Region table overflow NAUTOUP Определяет время существования буфера в секундах для автоматического изменения файловой системы. Системный буфер записывается на жесткий диск во время размещения резидентной программы в памяти в течение интервала времени, заданного параметром NAUTOUP. При этом указание меньшего предела увели- чивает надежность системы, так как буфера записыва- ются на диск более часто, а производительность сис- темы при этом уменьшается. При указании большего предела увеличивается производительность системы за счет надежности. Этот параметр управляет поведением процесса bdflush. - 8-25 - BDFLUSHR Определяет время в секундах проверки необходимости записи системных буферов файлов на диск. Значение по умолчанию - 1 секунда. Этот параметр управляет поведением процесса bdflush. PUTBUFSZ Определяет размер циклического буфера, putbuf, ко- торый используется для размещения копии последних символов PUTBUFSZ, выданных на консоль операционной системой. Содержание putbuf можно посмотреть, ис- пользуя команду crash. PIOMAP Задает размер массива элементов карты ядра, исполь- зуемого программой разбивки программируемого ввода/ вывода (PIO) ядра. Эта программа позволяет для драйверов устройств осуществлять программируемый ввод/вывод больших блоков данных на уровн