ГЛАВА 6 ОПТИМИЗАЦИЯ ФУНКЦИОНИРОВАНИЯ СИСТЕМЫ СОДЕРЖАНИЕ ВВЕДЕНИЕ ОСНОВНОЙ ПОДХОД К НАСТРОЙКЕ СИСТЕМЫ Выявление причин неудовлетворительной работы системы Устранение причин неудовлетворительной работы системы ПОВЫШЕНИЕ ЭФФЕКТИВНОСТИ РАБОТЫ СИСТЕМЫ Изменение настраиваемых параметров конфигурации Как улучшить использование дисков Как выбрать размер буферного пространства Установка бита навязчивости Организация файловой системы Установление оптимального распорядка работы в системе Команда ps Значения переменной $PATH, устанавливаемые пользователем ОБРАЗЦЫ ОБЩИХ ПРОЦЕДУР Примерная процедура поиска причин неудовлетворительной работы машины Чрезмерная интенсивность подкачек Не являются ли дисковые операции узким местом в системе? Потенциальная возможность переполнения таблиц Смещение некоторых видов работ на часы наименьшей загруженности системы Образец реконфигурации системы ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА Команда sar sar -a sar -b sar -с sar -d sar -m sar -q sar -u sar -v sar -w sar -p sar -r sar -y sar -A Команда timex НАСТРАИВАЕМЫЕ ПАРАМЕТРЫ Параметры ядра Параметры страничной организации памяти Параметры потоков Параметры драйвера регистрации ошибок Параметры службы сообщений Параметры семафоров Параметры разделяемой памяти Параметры разделения удаленных файлов ВВЕДЕНИЕ В этом разделе описаны пути оптимизации функционирования Вашей системы. Основной подход к настройке системы Выявление и устранение причин неудовлетворительной ра- боты системы. Повышение эффективности работы системы Настройка ядра - для минимизации накладных расходов, и дисковой подсистемы - для максимизации пропускной спо- собности. Анализ распределения ресурсов системы и технические приемы для уменьшения нагрузки. Оценка загруженности системы. Примеры типичных процедур. Описание инструментальных средств Подробное описание настраиваемых параметров ОСНОВНОЙ ПОДХОД К НАСТРОЙКЕ СИСТЕМЫ Этот вид административной деятельности может потребоваться не- посредственно после первичной установки компьютера. В начальный период эксплуатации в системе установлена некоторая стандартная конфигурация, которая подходит для большинства приложений. Но в ней могут быть не учтены какие-то особенности использования ма- шины в Вашей организации. Поэтому, в структуре системы предус- мотрены средства реконфигурации, позволяющие улучшить ее рабо- чие характеристики для конкретных приложений, по сравнению со стандартной конфигурацией. Вполне возможно, что Вам вообще не придется заниматься особо тонкой настройкой системы, и весь Ваш опыт реконфигурации све- дется к установке дополнительной памяти и периферийных уст- ройств. Выявление причин неудовлетворительной работы системы После одного-двух дней работы системы, по сигналам, поступающим из различных источников, Вы можете определить, что система нуж- дается в настройке. Вы можете заметить, в частности, что время выдачи ответа на консоль зачастую оказывается слишком велико. Здесь-то и начинается Ваша деятельность по изменению эксплуата- ционных качеств системы. Вначале, для того чтобы выявить источ- ник проблемы, следует воспользоваться средствами, которые будут описаны ниже в этой главе (в особенности - командой sar). Устранение причин неудовлетворительной работы системы Итак, Вы должны произвести корректирующие действия. Перечислим основные виды таких действий: Модификация настраиваемых параметров конфигурации Это принято называть настройкой ядра, поскольку регу- лируются управляющие структуры в самом сердце системы (ее ядре). Многие из этих параметров подробно описаны ниже в этой главе. Удаление из ядра пакетов программ, которые не требуются для Ваших приложений. Эта процедура позволяет высвободить пространство на диске и в оперативной памяти для пользовательских программ и тем самым улучшить производительность. Рациональное использование дискового пространства Вы можете не только задавать распределение памяти в системе при помощи настраиваемых параметров, но и в определенной мере управлять организацией файловых систем на дисках, а также применять политику размеще- ния часто используемых программ в оперативной памяти. Распорядок работы в системе Вы можете, наконец, установить такой распорядок рабо- ты пользователей, при котором система будет использо- ваться наиболее рационально. Например, можно создать условия для выполнения больших неинтерактивных прог- рамм в ночное время. Все эти вопросы подробнее обсуждаются далее в настоящей главе. ПОВЫШЕНИЕ ЭФФЕКТИВНОСТИ РАБОТЫ СИСТЕМЫ Изменение настраиваемых параметров конфигурации Установка значений настраиваемых параметров выполняется путем редактирования файлов master(4) и dfile(4). Полные определения настраиваемых параметров и рекомендуемые диапазоны значений для них см. в разделе "Настраиваемые параметры" в конце этой главы. См. рис. 6-1, где приводятся рекомендуемые начальные значения настраиваемых параметров в зависимости от имеющегося объема па- мяти. Как правило, подразумеваемые значения настраиваемых параметров в Вашей конфигурации - приемлемые характеристики. Если же прик- ладные программы, с которыми вы работаете, предъявляют какие-то особые требования к системе, то Вы можете использовать команды, описанные ниже в разделе "Инструментальные средства", для оцен- ки степени загруженности различных частей системы и определения параметров, которые следует изменить для улучшения ее работы. Эффективность использования дисков в большой степени определя- ется значениями двух ключевых параметров - NBUF (число систем- ных буферов) и NHBUF (число хэш-буферов). Они обсуждаются ниже, в разделе "Как улучшить использование дисков". Примеры редактирования настраиваемых параметров и реконфигура- ции системы см. в процедуре 6.1 "Реконфигурация системы". Как улучшить использование дисков Осложнять работу системы могут операции обмена с диском. Су- ществует три способа настройки дисковой подсистемы с целью улучшения ее использования. Правильный выбор числа буферов Установка бита навязчивости. Оптимальная организация файловой системы, при которой миними- зируется число операций обмена с диском. КАК ВЫБРАТЬ РАЗМЕР БУФЕРНОГО ПРОСТРАНСТВА Задайте для начала число буферов (NBUF и NHBUF), которое указа- но на рис. 6-1. Эти значения близки к оптимальным для боль- шинства рабочих нагрузок системы. Параметр NBUF определяет число буферов в системном буферном кэ- ше, который используется для сокращения числа обращений к дис- ку. В буферах хранятся недавно использовавшиеся данные - на случай, если они опять понадобятся. Параметр NHBUF определяет число областей хеширования в буферном кэше. Чем больше буферов, тем больше шансов, что требуемые данные найдутся в одном из них, и не придется выполнять отнимающую много времени операцию чтения диска. Сообщения команды sar -b информируют об эффектив- ности использования системных буферов. Величина NHBUF - степень числа 2, составляющая примерно одну четверть значения NBUF; она должна быть задана в файле master(4) или dfile(4). Увеличение значений NBUF и NHBUF до определенных пределов улуч- шает работу системы. В системе с 2Мб памяти 250Кб может быть отведено под буфера (250 буферов приблизительно по 1Кб каждый); в системе с 4 Мб памяти под буфера можно отвести уже 600 Кб па мяти. Тем не менее, если буферов выделено слишком много, то мо- жет остаться недостаточно памяти для эффективного выполнения пользовательских программ, тогда возрастет число подкачек. Зат- раты на выполнение излишнего числа подкачек, как правило, пере- вешивают выигрыш, который дает большое буферное пространство. Если вывод команды sar -w показывает, что отношение swpot/s в Вашей системе превышает 1.0, то добавление буферов, по-видимо- му, уже не даст улучшения. После одного или нескольких дней работы системы Вы можете поин- тересоваться, не слишком ли много производится подкачек. Если это так, то следует либо сократить число буферов (NBUF и NHBUF), либо увеличить объем памяти Вашей системы. УСТАНОВКА БИТА НАВЯЗЧИВОСТИ За счет установки бита навязчивости можно сократить число обме- нов с диском для некоторой избранной группы команд. Страницы, принадлежащие сегментам команд выполняемых файлов, у которых установлен бит навязчивости, сохраняются в оперативной памяти даже после завершения процесса. Будучи однажды загруженными, они, как правило, остаются в памяти постоянно. Единственное исключение - ситуация нехватки памяти, когда страничному демону требуются страницы, то есть когда число доступных страниц сво- бодной памяти становится меньше нижней отметки, которая опреде- ляется значением настраиваемого параметра GPGSLO. Удержание в оперативной памяти страниц из сегмента команд приводит к умень- шению не только числа обменов с диском, но и времени запуска процессов. Примечание: Сегменты с битом навязчивости не сохраняются в области подкачки, как это было в более ранних UNIX-машинах без страничной организации памяти. В системах, работающих в основном с небольшой или средней заг- рузкой, если недостаток памяти случается редко, установка бита навязчивости может существенно повлиять на эффективность рабо- ты системы. В системах с ограниченнным объемом памяти или рабо- тающих с большой нагрузкой бит навязчивости устанавливать не следует. Придерживайтесь следующих рекомендаций: ~----------- -------------------------------------------------- │ Объем │ │ │ памяти │ Указание по установке бита навязчивости │ ----------- -------------------------------------------------- │ 1Мб │ Не используйте бит навязчивости │ ----------- -------------------------------------------------- │ 2Мб-4Мб │ Применяйте установку бита навязчивости, если │ │ │ средний объем свободной памяти больше │ _ │ чем верхний уровень плюс 100. │ ----------- -------------------------------------------------- Для того, чтобы определить средний объем свободной памяти, ус- тановите при помощи команды chmod(1) бит навязчивости для нес- кольких тестовых команд и затем, при помощи опции -r команды sar(1), определите среднее значение freemem для некоторого ти- пичного интервала работы системы. Если результат команды sar показывает, что установка бита навязчивости для нескольких ко- манд будет безопасна, то кандидатами на установку бита навязчи- вости будут часто используемые и (предпочтительно) небольшие команды. Если же средний объем свободной памяти для исследуемо- го интервала оказался меньше, чем средний уровень плюс 100, то установка бита навязчивости вряд ли повысит, а, возможно, и по- низит производительность системы. ОРГАНИЗАЦИЯ ФАЙЛОВОЙ СИСТЕМЫ В этом разделе описываются некоторые действия, которые можно предпринять для сокращения времени доступа к файлам. В процессе работы с файловой системой, блоки, относящиеся к отдельным фай- лам, оказываются беспорядочно разбросанными по диску. В резуль- тате - принадлежность блоков к отдельным файлам оказывается плохо согласованной с их упорядоченностью, а также нарушается оптимальная структура каталогов. ОРГАНИЗАЦИЯ СПИСКА СВОБОДНОЙ ПАМЯТИ ФАЙЛОВОЙ СИСТЕМЫ В файловых системах ОС UNIX свободные блоки размещаются так, что обеспечивается эффективное чтение и запись файлов. Список свободных блоков формируется во время создания файловой системы командой /etc/mkfs(1M). Список организуется с учетом промежут- ка, заданного в качестве опции команды mkfs (разница между но- мерами соседних блоков в списке свободных блоков). Так, файл, создаваемый в файловой системе с промежутком равным 10, может состоять из блоков 510, 520 и 530. Во время чтения этого файла на управляющее устройство диска поступают запросы на чтение блоков 510, 520 и 530. Когда чтение блока 510 заканчивается и начинается обработка второго запроса, то блок 520 находится как раз под головкой чтения/записи, и устройство готово приступить к чтению. Этот метод обеспечивает эффективное выполнение опера- ций ввода/вывода. Однако, когда Вы начинаете изменять файлы (изменять их размер или удалять), то эффективность доступа снижается. Если несколь- ко файлов создаются одновременно, то они будут попеременно зап- рашивать блоки из списка свободных блоков. Упорядоченность не- которых блоков, выделяемых для файлов, окажется нарушенной. Нетрудно видеть, что по мере выделения и освобождения блоков, список свободных блоков также окажется беспорядочно разбросан- ным по диску. ОРГАНИЗАЦИЯ КАТАЛОГОВ Организация каталогов также влияет на скорость выполнения вво- да/вывода. Сложности возникают, когда пользователи удаляют фай- лы. При удалении файла, поле номера описателя файла в элементе каталога обнуляется. При этом в каталоге остается неиспользуе- мый элемент, соответствующий этому описателю; со временем число пустых описателей может стать значительным. Если из каталога, в котором было 100 файлов, удалить первые 99 файлов, то в этом каталоге перед единственным активным элементом будут распола- гаться 99 пустых элементов по 16 байт в каждом. Фактически, ка- талог сохраняет наибольший когда-либо достигнутый размер до тех пор, пока не будет реорганизован. КАК ВОССТАНОВИТЬ ХОРОШУЮ ОРГАНИЗАЦИЮ ФАЙЛОВОЙ СИСТЕМЫ Не существует способа сделать это полностью автоматически, од- нако, Вы можете реорганизовать файловую систему самостоятельно. Ниже перечислено несколько возможных способов. Заметим, что во всех случаях, файловая система должна быть размонтирована. Шаг 1: Для реорганизации списка свободных блоков выполните команду fsck(1М) -s. Шаг 2: Для того чтобы реорганизовать структуры конкретных ка- талогов, скопируйте их сначала командой cpio(1M) -pdm во временное хранилище; удалите исходные структуры, за- тем снова воспользуйтесь командой cpio -pdm для того, чтобы скопировать каталоги на прежнее место. Шаг 3: Для реорганизации файловой системы примените команду dcopy(1M) -s. Это, пожалуй, наиболее полный и явный способ реорганизации файловой системы. Команда dcopy выполняет шаги 1 и 2, а также позволяет изменить раз- меры файловой системы и число описателей файлов в ней. Шаг 4: Eсли в системе имеются ленточные утилиты, то для реор- ганизации файловой системы можно применить команду sy- sadm compress(1) или cmpress(1M). Эта процедура перепи- сывает файловую систему временно на ленту, а затем возвращает на исходное место. Шаг 5: Для того, чтобы избежать косвенной адресации в файловой системе (что приводит к неэффективному поиску по ката- логам), выявите все каталоги, включающие более 320 эле- ментов (т. е. имеющие длину более 5120 байт) при помощи следующей команды: find / -type d -size +10 -print Если такие каталоги обнаружены, то выясните, нельзя ли разбить их на более мелкие каталоги. Шаг 6: Если в системе имеется более одного диска, то распреде- лите интенсивно используемые файловые системы по разным дискам. Установление оптимального распорядка работы в системе После того, как Вы настроили ядро системы, а также надлежащим образом организовали файловые системы, следующий этап заключа- ется в том, чтобы провести ряд учетных и организационных мероп- риятий и выяснить, нельзя ли сократить пиковую загрузку компью- тера. Лицо, ответственное за административную работу в системе, должно позаботиться о том, чтобы: менее важные задачи перемежались с более важными ненужные виды работ были исключены из системы определенная часть работ планировалась на часы наименьшей загруженности системы эффективно применялись такие пользовательские средства, как .profile и $PATH КОМАНДА ps Команда ps(1) используется для получения информации об активных процессах в системе. Она дает как бы "моментальный снимок" все- го, что происходит в системе; это может быть полезно, когда Вы пытаетесь выяснить, какие процессы загружают систему. К моменту появления выдачи ситуация, вероятно, уже изменится, тем не ме- нее, для Вас должны представлять интерес такие сведения, как TIME (время ЦП, затраченное процессом, в минутах и секундах) и STIME (время запуска процесса). Если Вы обнаружили "убегающий" процесс (который в течение вре- мени наблюдения постоянно поглощает большую часть системного времени), то необходимо связаться с его владельцем. Возможно, это процесс нужно немедленно остановить командой kill(1) -9. Если процесс действительно вышел из-под контроля, то он будет продолжать поглощать системные ресурсы, пока не остановится вся работа. Если Вы выявили процессы, которые выполняются очень долго, то следует рассмотреть вопрос о том, чтобы при помощи процесса cron(1M) обеспечить выполнение таких заданий в нерабочие часы. ЗНАЧЕНИЯ ПЕРЕМЕННОЙ $PATH, УСТАНАВЛИВАЕМЫЕ ПОЛЬЗОВАТЕЛЕМ Поиск по каталогам переменной $PATH осуществляется при выполне- нии каждой команды. Прежде чем выдать сообщение "not found" ("не найден"), система должна произвести поиск по всем катало- гам, перечисленным в $PATH. На поиск затрачивается и время ЦП, и ресурсы дисковода. Если имеется дефицит времени ЦП или ресур- сов дисковода, то ситуацию можно поправить, внеся изменения в переменную $PATH. Следует позаботиться о том, чтобы при установке пользователями значений $PATH учитывались следующие моменты: Эффективность Список $PATH просматривается слева направо, поэтому каталоги, в которых команда может быть найдена с наи- большей вероятностью (/bin и /usr/bin) следует поме- щать в начале. Убедитесь, что в списке $PATH нет пов- торений. Удобство использования Пользователи, возможно, предпочтут поместить в начале $PATH текущий каталог (:/bin). Длина списка $PATH В списке $PATH должно содержаться минимальное число необходимых каталогов. Поиск в больших каталогах Следует по возможности избегать поиска в больших ката- логах. Если в $PATH необходимо включить большой ката- лог, то поместите его в конец списка. ОБРАЗЦЫ ОБЩИХ ПРОЦЕДУР В этом разделе рассматриваются типичные приемы оптимизации функционирования системы. Вначале описывается общая процедура исследования причин неудовлетворительной работы машины. Далее показан пример реконфигурации системы. Примерная процедура поиска причин неудовлетворительной работы машины Для того чтобы определить источник затруднений, возможно, пот- ребуется некоторая исследовательская работа. Поэтому то, что будет рассказано далее, не есть какая-то стандартная процедура, а скорее пример типичного подхода к выявлению проблем, в кото- ром охватываются основные области, где могут возникать источни- ки затруднений, а также предлагаются те или иные действия, нап- равленные на разрешение проблем. Наиболее общий симптом небла- гополучия - большое, как правило, время ответа. Если причины Вам известны, то обратитесь к процедуре 6.1 "Реконфигурирация системы", где показано, как внести необходимые изменения в па- раметры системы. ЧРЕЗМЕРНАЯ ИНТЕНСИВНОСТЬ ПОДКАЧЕК Первое, на что следует обратить внимание - это интенсивность подкачек, поскольку подкачки обходятся дорого, как с точки зре- ния времени ЦП, так и с точки зрения ресурсов дисковода. Полу- чите выдачу команды sar -qw. Посмотрите, бывает ли очередь под- качек (%swpocc) больше 5. Посмотрите также, встречаются ли зна- чения частоты выталкиваний страниц из оперативной памяти в об- ласть подкачек (swpot/s) больше 1.00. Проверьте значение счетчика freemem (число свободных страниц, доступных для размещения пользовательских программ), выдаваемое по команде sar -r. Не является ли оно устойчивым ниже значения настраиваемого параметра GPGSHI (верхняя отметка). Если одна или несколько из перечисленных выше ситуаций наблюда- ются часто, то следует либо расширить память, либо выяснить, нельзя ли сократить пространство, отведенное под системные бу- фера. Если в конфигурации системы выделено большое число буфе- ров и коэффициент попаданий в кэш-буфер составляет 90% или бо- лее, то попробуйте сократить число буферов (которое задается настраиваемым параметром NBUF). Возможно, освободив память, за- нимаемую несколькими буферами, Вы сможете решить проблему под- качек за счет того, что для пользовательских программ останется больше места. Дополнительное пространство для пользовательских программ можно освободить также за счет удаления части утилит ядра, которые не требуются для Ваших приложений. НЕ ЯВЛЯЮТСЯ ЛИ ДИСКОВЫЕ ОПЕРАЦИИ УЗКИМ МЕСТОМ В СИСТЕМЕ? Если значение %wio (выдаваемое командой sar -u) больше 10% или, если %busy для данного дисковода (выдаваемое командой sar -d) больше 50%, то это означает, что дисковые операции являются "узким местом" в системе. Вот некоторые способы улучшить ситуа- цию: 1. Увеличить число буферов. 2. Организовать файловые системы таким образом, чтобы мини- мизировать дисковые операции. Если имеется два диска, то распределите файловые системы так, чтобы сбалансировать нагрузку на диски. 3. Если поправить ситуацию не удается, то рассмотрите вопрос об установке дополнительной памяти. За счет дополнитель- ной памяти сократится поток подкачек и появится возмож- ность увеличить буферный пул (и сократить на пользова- тельском уровне число операций чтения/записи, требующих обращения к диску). 4. Может помочь также установка бита навязчивости. См. выше раздел "Установка бита навязчивости", где обсуждается этот вопрос. 5. Подумайте об установке дополнительного диска и распреде- лите наиболее активно используемые файловые системы по двум дискам. ПОТЕНЦИАЛЬНАЯ ВОЗМОЖНОСТЬ ПЕРЕПОЛНЕНИЯ ТАБЛИЦ Проверить возможность переполнения таблиц можно при помощи ко- манды sar -v. Выдача этой команды позволит Вам узнать, не слу- чалось ли переполнения таблиц процессов, файлов или описателей файлов. Для того, чтобы избежать переполнения этих таблиц, уве- личьте значения параметров NPROC, NFILE и NINODE/NS5INODE (в файлах master(4) и dfile(4)). СМЕЩЕНИЕ НЕКОТОРЫХ ВИДОВ РАБОТ НА ЧАСЫ НАИМЕНЬШЕЙ ЗАГРУЖЕННОСТИ СИСТЕМЫ Исследуйте содержимое /usr/spool/crontab и проверьте, не запла- нированы ли на часы пик такие работы, которые можно было бы вы- полнять, когда система свободна. Определите при помощи команды ps какие процессы в наибольшей степени загружают систему. По- ощряйте пользователей к выполнению больших неинтерактивных ко- манд (таких как nroff(1) или troff(1)) не в часы пик. Вы можете также при помощи nice(1) или batch(1) придать таким командам низкий приоритет выполнения. Образец реконфигурации системы Рассмотрим типичный сценарий реконфигурации системы в связи с расширением памяти с 1Мб до 2Мб. Установив дополнительную па- мять, необходимо увеличить значения многих настраиваемых пара- метров (см. рис. 6-1, где приведены рекомендуемые значения па- раметров для Вашей системы). Большинство из них находятся в файлах master(4) и dfile(4). См. процедуру 6.1 "Реконфигурация системы", где описано, как сгенерировать и запустить новое ядро системы UNIX после измене- ния параметров конфигурации. ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА Внутренняя деятельность системы контролируется при помощи ряда счетчиков, содержащихся в ядре системы UNIX. Всякий раз, когда выполняется какая-то операция, увеличивается значение соот- ветствующего счетчика. Следить за значениями этих счетчиков позволяет команда sar, а также другие инструментальные средст- ва. Функции, отслеживаемые при помощи команды sar, рассматрива- ются в последующих разделах. В данном разделе описываются сле- дующие средства измерения внутренней активности системы: sar Считывает значения внутренних счетчиков актив- ности системы и выдает отчеты по различным ви- дам деятельности всей системы в целом. timex Выдает отчеты по различным видам активности как для всей системы в целом, так и для отдельных процессов во время выполнения команды или прог- раммы. В последующих разделах приводятся примеры применения обоих средств. Примеры выполнялись в системе AT&T 3B2 с оперативной памятью 2Мб и жестким диском 30Мб. В выдачах команд представле- ны типичные значения, наблюдаемые при рабочей нагрузке операци- памятью 2Мб и жестким диском 30Мб. В выдачах команд представле- ны типичные значения, наблюдаемые при рабочей нагрузке операци- онной системы UNIX. Значения, которые получите Вы, могут су- щественно отличаться от тех, что приведены в примерах, посколь- ку они зависят от характера приложений и от измерительных прог- рамм. Во время настройки системы рекомендуется использовать из- мерительные программы или наблюдать за системой при нормальной для Ваших условий загрузке, для того чтобы провести настройку системы с учетом специфики Ваших приложений. Команда sar В этом разделе дается описание опций команды sar, а также ана- лиз примерных выдач, соответствующих этим опциям. Команду sar можно применять для сбора данных о деятельности системы, либо для выборки сведений из файлов данных, созданных процессами sa1 и sa2. Процессы sa1 и sa2 запускаются при помощи специальных записей, помещаемых в системный файл crontab. sar -a Команда sar -a выдает отчет об операциях доступа к файлам. Вы- даются сведения о следующих действиях операционной системы UNIX: iget/s Число файлов, найденных по описателям файлов, в секунду. namei/s Число поисков (в секунду) файлов по маршрутным именам. Команда namei обращается к iget, поэтому iget/s всегда больше namei/s. dirbk/s Число прочитанных в секунду блоков каталогов. Пример выдачи sar -a с 30-секундным интервалом наблюдения: unix unix 3.1 2 3B2 12/30/85 12:41:40 igets/s namei/s dirbk/s 12:42:10 4 1 3 12:42:40 2 1 1 12:43:10 5 2 3 Average 4 1 3 Чем больше значения в этом отчете, тем больше времени ядро сис- темы UNIX затрачивает на доступ к файлам пользователей. Значе- ния показывают, насколько интенсивно в программах и прикладных системах используется файловая система (или системы). Опция -a помогает оценить, в какой мере зависят от дисковых операций Ва- ши прикладные системы; сама по себе она не используется при вы- полнении какого-либо этапа настройки. sar -b Опция -b сообщает о следующих видах буферных операций: bread/s Среднее число физических блоков, прочитанных в системные буфера с диска (или других блочных уст- ройств) в секунду. lread/s Среднее число логических блоков, прочитанных с системных буферов в секунду. %rcache Доля логических операций чтения, когда нужный блок был найден в буферном кеше. (100% минус отношение bread/s к lread/s). bwrit/s Среднее число физических блоков, записанных с сис- темных буферов на диск (или другие блочные устрой- тва) в секунду. lwrit/s Среднее число логических блоков, записанных в сис- темные буфера (в секунду). %wcache Доля логических операций записи, когда нужный блок был найден в буферном кеше. (100% минус отношение bwrit/s к lwrit/s). pread/s Среднее число запросов в секунду на физическое чтение. pwrit/s Среднее число запросов в секунду на физическую операцию записи. Наибольший интерес для Вас представляют значения коэффициентов попаданий в кэш %rcache и %wcache, которые показывают эффектив- ность буферизации в системе. Если %rcache меньше 90% или %wcac- he меньше 65%, то, возможно, работу системы следует улучшить, увеличив число буферов. Пример выдачи команды sar -b: unix unix 3.1 2 3B2 12/30/85 16:32:57 bread lread %rcache bwrit lwrit %wcache pread pwrit /s /s /s /s /s /s 16:33:07 3 39 93 1 16 91 0 0 16:33:17 4 40 90 2 16 87 0 0 1_:33:27 4 41 90 3 7 64 0 0 Average 4 40 91 2 13 84 0 0 Данный пример показывает, что буферизация не является "узким местом" в системе, поскольку все данные находятся в приемлемых границах. sar -с Опция -c выдает следующие сведения о системных вызовах. scall/s Число системных вызовов всех типов в секунду, обычно около 30 при 4-6 работающих пользователях. sread/s Число системных вызовов операции чтения в секунду. swrit/s Число системных вызовов операции записи в секунду. fork/s Число системных вызовов операции ветвления в се- кунду, обычно около 0.5/сек. при 4-6 работающих пользователях. Это значение увеличивается, когда выполняются shell-процедуры. exec/s Число системных вызовов операции выполнения в се- кунду. (Если отношение (exec/s)/(fork/s) больше 3, то следует выявить неэффективные списки $PATH). rchar/s Число символов (байт), прочитанных системными вы- зовами операции чтения в секунду. wchar/s Число символов (байт), записанных системными вызо- вами операции записи в секунду. Как правило, сумма обращений к операциям чтения и записи сос- тавляет примерно половину от общего числа системных вызовов, хотя это соотношение может значительно изменяться в зависимости от характера работ, выполняемых в системе. Пример выдачи команды sar -c: unix unix 3.1 2 3B2 12/30/85 18:33:04 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s 18:33:35 38 16 6 0.03 0.03 6089 1638 18:34:05 39 16 4 0.07 0.07 6123 1602 18:34:35 38 17 5 0.17 0.17 6042 1704 Average 38 16 5 0.09 0.09 6085 1648 Аналогичная опция определена для систем с разделением удаленных файлов. См описание команды sar -Dc в гл. 10 "Разделение уда- ленных файлов". sar -d Опция sar -d служит для выдачи сведений о блочных устройствах. device Имя блочного устройства (или имена устройств), за которым(и) можно наблюдать при помощи sar. %busy Процент времени, в течение которого устройство бы- ло занято обработкой запроса на передачу данных. avque Среднее число отложенных запросов за период наблю- дений (измеряется только если существовала оче- редь). r+w/s Число чтений и записей, произведенных устройством в секунду. blks/s Число 512-байтных блоков, переданных на устройство в секунду. avwait Среднее время ожидания для запросов, ожидающих вы- полнения в очереди (измеряется только если сущест- вовала очередь). avserv Среднее время выполнения запроса на передачу дан- ных в миллисекундах (для дисков эта величина вклю- чает время поиска, задержку на вращение и время пересылки данных). Пример выдачи команды sar -d: unix unix 3.1 2 3B2 12/30/85 13:46:28 device %busy avque r+w/s blks/s avwait avserv 13:46:58 hdsk-0 6 1.6 3 5 13.8 23.7 fdsk-0 93 2.1 2 4 467.8 444.0 13:47:28 hdsk-0 13 1.3 4 8 10.8 32.3 fdsk-0 100 3.1 2 5 857.4 404.1 13:47:58 hdsk-0 17 .7 2 41 .6 48.1 fdsk-0 100 4.4 2 6 1451.9 406.5 Average hdsk-0 12 1.2 3 18 8.4 34.7 fdsk-0 98 3.2 2 5 925.7 418.2 В этом примере наблюдения велись во время переписи данных с жесткого диска (hdsk-0) на дискету (fdsk-0). Глядя на результа- ты, нетрудно понять, почему введение жестких дисков улучшило рабочие качества супер-мини-компьютеров. Обратите внимание, что длина очереди и время ожидания в очереди измеряются только, когда очередь непуста. Если величина %busy мала, то большие значения длины очереди и времени обслуживания, по-видимому, отражают периодические усилия системы: под дейст- вием команды sync в определенные моменты времени записывать на диск все изменившиеся блоки. sar -m Опция -m служит для выдачи информации о связях между процесса- ми. Сведения о сообщениях и обращениях к семафорам выдаются следующим образом. msg/s Число операций отсылки и приема сообщений в секун- ду. sema/s Число операций над семафорами в секунду. Пример выдачи команды sar -m: unix unix 3.1 2 3B2 12/30/85 15:16:58 msg/s sema/s 15:17:32 0.00 0.00 15:18:02 0.00 0.00 15:18:32 0.00 0.00 Average 0.00 0.00 Значения, как правило, нулевые, если только Вы не работаете с приложениями, использующими средства передачи сообщений и опе- рации над семафорами. sar -q Опция -q служит для выдачи сведений о средней длине очереди, а также о проценте времени, в течение которого очередь не пуста. runk-sz Очередь выполняемых процессов, находящихся в памя- ти. Как правило, это значение должно быть меньше 2. Если оно устойчиво больше этой величины, то это говорит об ограниченности ресурса ЦП. %runocc Процент времени, в течение которого очередь выпол- няемых процессов непуста. Чем больше это значение, тем лучше. swpq-sz Длина очереди процессов, которые должны быть вы- толкнуты во внешнюю память. Чем меньше это значе- ние, тем лучше. %swpocc Процент времени, в течение которого очередь вытал- киваемых процессов непуста; чем меньше это значе- ние, тем лучше. Пример выдачи команды sar -q: unix unix 3.1 2 3B2 12/30/85 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% до 40%. Эти цифры означают, что оперативная память не является ос- новным сдерживающим фактором пропускной способности системы, однако, установка дополнительной памяти способствовала бы сок- ращению интенсивности подкачек. Если %runocc больше 90, а runq-sz больше 1, то это означает, что ЦП сильно перегружен, и в результате увеличивается время ответа. В таком случае для достижения удовлетворительного вре- мени ответа, возможно, требуется установка дополнительного про- цессора. Если %swpocc больше 20, то снижению интенсивности под- качек может способствовать установка дополнительной памяти или сокращение числа буферов. sar -u Сведения об использовании процессора выдаются командой sar -u (подразумеваемая опция). В каждый момент времени процессор либо занят, либо свободен. Если процессор занят, то он находится ли- бо в пользовательском, либо в системном режиме. Если процессор свободен, то он либо ждет завершения ввода/вывода, либо у него "нет работы". Опция -u команды sar выдает процент времени, в течение которого процессор находится в системном режиме (%sys), в пользовательском режиме (%user), ждет завершения ввода/вывода (%wio), простаивает (%idle). При обычной работе в режиме разделения времени значения %sys и %usr будут примерно одинаковы. Для специфических приложений лю- бое из этих значений может быть больше другого, что вполне нор- мально. Большие значения %wio, как правило, означают перегру- женность дисковода. Большие значения %idle при увеличенном вре- мени ответа могут означать, что имеются ограничения по памяти; время ожидания памяти относится к категории %idle. Пример выполнения sar -u: unix unix 3.1 2 3B2 12/30/85 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 -Du в гл. 10 "Разделение удаленных файлов". sar -v Опция -v служит для выдачи сведений о состоянии системных таб- лиц. proc-sz Число занятых/общее число элементов в таблице про- цессов ядра системы. inod-sz Число занятых/общее число элементов в таблице опи- сателей файлов в ядре системы. proc-sz Число занятых/общее число элементов в таблице про- цессов ядра системы. file-sz Число занятых/общее число элементов в таблице фай- лов в ядре системы. ov Число случаев переполнения таблицы (по одной ко- лонке на каждую из трех перечисленных выше таб- лиц). lock-sz Число занятых/общее число элементов в таблице за- писей разделяемой памяти в ядре системы. fhdr-sz Не используется. Значения выводятся в формате уровень/размер таблицы. Пример выдачи команды sar -v: unix unix 3.1 2 3B2 12/30/85 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 Число переключений с процесса на процесс в секун- ду. При 4-6 работающих пользователях это значение должно быть от 30 до 50. Пример выдачи команды sar -w: unix unix 3.1 2 3B2 12/30/85 19:53:44 swpin/s bswin/s swpot/s bswot/s pswch/s 19:53:58 0.0 0.0 0.0 0.0 37 19:54:14 0.0 0.0 0.0 0.0 39 19:54:24 0.0 0.0 0.0 0.0 39 Average 0.0 0.0 0.0 0.0 38 В этом случае для работающих в данный момент пользователей па- мяти достаточно, поскольку подкачек нет. sar -p Опция -p служит для выдачи сведений о деятельности системы по подкачке. Выдаются частоты следующих событий: vflt/s Число отказов в секунду при трансляции адреса (ес- ли нужная страница отсутствует в памяти). pflt/s Число отказов в секунду из-за ошибок защиты (неза- конное обращение к странице) или из-за требований выделить новую страницу для записи. В нормально работающей системе число незаконных обращений к страницам равно 0. pgfil/s Число отказов в секунду при трансляции адреса (vflt/s), разрешенных за счет чтения страницы из файловой системы. (Каждое разрешение порождает два lread; см. sar -b). rclm/s Число страниц, освобожденных системой (внесенных в список свободных страниц) в секунду. Пример выдачи команды sar -p: unix unix 3.1 2 3B2 12/30/85 12:01:51 vflt/s pflt/s pgfil/s rclm/s 12:56:52 13.91 2.80 5.63 11.21 sar -r Опция -r служит для выдачи сведений о числе страниц памяти и числе блоков в файле подкачек на диске, которые в данный момент не используются. Выдается следующая информация. freemem Среднее число свободных страниц памяти по 2Кб, доступных для пользовательских процессов в течение интервала наблюдения. freeswap Число свободных дисковых блоков размером по 512Кб для подкачки пользовательских процессов. Пример выдачи команды sar -r: unix unix 3.1 2 3B2 12/30/85 12:01:51 freemem freeswap 12:54:52 208 5848 sar -y Опция -y позволяет следить за активностью терминалов. Если объ- ем терминального ввода/вывода велик, то полученную выдачу можно использовать для того чтобы проверить, нет ли дефектных линий. Определения величин, выдаваемых этой опцией: rawch/s Число введенных символов (очередь бесструктурного ввода) в секунду. canch/s Число введенных символов (в секунду), обработанных канонически (очередь канонического ввода). putch/s Число выведенных символов (очередь вывода) в се- кунду. rcvin/s Число аппаратных прерываний по вводу в секунду. xmtin/s Число аппаратных прерываний по выводу в секунду. mdmin/s Число прерываний модема в секунду. Число прерываний модема в секунду (mdmin/s) должно быть близко к 0, а значения числа прерываний по вводу и вывода (rcvin/s и xmtin/s) должны быть меньше или равны числу введенных и выве- денных символов, соответственно. Если это условие нарушается, проверьте, нет ли дефектных линий. Пример выдачи команды sar -y: unix unix 3.1 2 3B2 12/30/85 16:50:11 rawch/s canch/s putch/s rcvin/s xmtin/s mdmin/s 16:50:41 112 15 653 103 102 0 16:51:11 107 7 654 104 105 0 16:51:41 99 5 641 99 105 0 Average 106 9 649 102 104 0 sar -A Команда sar -A эквивалентна sar -udDqbwcayvmprS. Выдача включа- ет информацию об операциях РУФ (опции -D и -S), описанных в гл. 10 "Разделение удаленных файлов". Опция -A дает сведения о функционировании всей системы в целом. Используйте ее для гло- бальной оценки работы системы. Если выводятся данные за нес- колько интервалов наблюдения, то даются также средние значения. Пример выдачи команды sar -A: unix unix 3.1 2 3B2 02/19/86 00:00:00 %usr %sys %sys %wio %idle local remote 01:00:00 0 0 0 0 100 00:00:00 device %busy avque r+w/s blks/s avwait avserv 01:00:00 hdsk-0 0 1.5 0 0 10.9 21.1 hdsk-1 0 2.1 0 0 30.6 27.9 00:00:00 runq-sz %runocc swpq-sz %swpocc 01:00:00 1.1 0 00:00:00 bread lread %rcache bwrit lwrit %wcache pread pwrit /s /s /s /s /s /s 01:00:00 0 0 97 0 0 0 67 0 00:00:00 swpin/s bswin/s swpot/s bswot/s pswch/s 01:00:00 0.00 0.0 0.00 0.0 1 00:00:00 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s 01:00:00 in 0 0 0 0.00 0 0 out 0 0 0 0.00 0 0 local 0 0 0 0.01 0.01 23 0 00:00:00 iget/s namei/s dirbk/s 01:00:00 0 0 0 00:00:00 rawch/s canch/s outch/s rcvin/s xmtin/s mdmin/s 01:00:00 0 0 0 0 0 0 00:00:00 proc-sz ov inod-sz ov file-sz ov lock-sz fhdr7-sz 01:00:00 12/ 60 0 33/150 0 21/150 0 0/100 0/ 0 00:00:00 msg/s sema/s 01:00:00 0.00 0.00 00:00:00 vflt/s pflt/s pgfil/s rclm/s 01:00:00 0.09 0.08 0.01 0.00 00:00:00 freemem freeswp 01:00:00 362 10196 00:00:00 serv/io-hi request request server srever 3 - 6 %busy avg lgth %avail avg avail 01:00:00 0 0.0 0 0.0 0 Команда timex Команда timex выдает время выполнения заданной команды и сооб- щения о деятельности системы за время выполнения команды. Если другие программы в это время не выполнялись, то Вы можете сос- тавить представление о ресурсах, используемых при выполнении данной команды. Можно собрать сведения о системных затратах для каждой прикладной программы и использовать их для настройки де- фицитных ресурсов. В нашем примере объектом исследования будет команда date. Введите $ timex -s date Wed Feb 19 08:32:50 EST 1986 real 0.17 user 0.01 sys 0.09 unix unix 3.1 2 3B2 02/19/86 08:32:05 %usr %sys %sys %wio %idle local remote 08:32:05 10 77 0 13 100 08:32:05 bread lread %rcache bwrit lwrit %wcache pread pwrit /s /s /s /s /s /s 08:32:05 8 125 94 0 12 100 0 0 08:32:05 device %busy avque r+w/s blks/s avwait avserv 08:32:05 hdsk-0 12 1.0 4 8 0.0 30.0 hdsk-1 8 1.0 4 8 0.0 20.0 08:32:05 rawch/s canch/s outch/s rcvin/s xmtin/s mdmin/s 08:32:05 0 0 56 0 4 0 08:32:05 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s 08:32:05 in 0 0 0 0.00 0 0 out 0 0 0 0.00 0 0 local 244 29 8 5.77 7.69 44154 879 08:32:05 swpin/s bswin/s swpot/s bswot/s pswch/s 08:32:05 0.00 0.0 0.00 0.0 33 08:32:05 iget/s namei/s dirbk/s 08:32:05 40 21 42 08:32:05 runq-sz %runocc swpq-sz %swpocc 08:32:05 08:32:05 proc-sz ov inod-sz ov file-sz ov lock-sz fhdr-sz 08:32:05 13/ 60 0 33/150 0 20/150 0 0/100 0/ 0 08:32:05 msg/s sema/s 08:32:05 0.00 0.00 08:32:05 vflt/s pflt/s pgfil/s rclm/s 08:32:05 44.23 46.15 3.85 0.00 08:32:05 freemem freeswp 08:32:05 306 10196 08:32:05 serv/io-hi request request server srever 3 - 6 %busy avg lgth %avail avg avail 08:32:05 0 0.0 0 0.0 0 Программа date была выбрана для демонстрации ради простоты, хо- тя это, конечно, не лучший пример, поскольку программа date - далеко не основной потребитель системных ресурсов. Команду timex можно использовать следующим образом: $ timex -s прикладная программа Прикладная программа будет выполняться обычным образом. После ее завершения на экране будет распечатана выдача timex. Это мо- жет быть весьма интересно - Вы получите ясное представление о системных ресурсах, потребляемых Вашей программой. НАСТРАИВАЕМЫЕ ПАРАМЕТРЫ Настраиваемые параметры служат для установки размеров всевоз- можных системных таблиц и пороговых значений, в соответствии с ожидаемым уровнем загруженности системы. Изменяя значения этих параметров, следует соблюдать осторожность, поскольку эти изме- нения могут оказать непосредственное влияние на работоспособ- ность системы. Как правило, начальные значения настраиваемых параметров, установленные на Вашей машине, приемлемы для боль- шинства конфигураций и приложений. Если же Ваши прикладные программы и системы имеют специфические потребности в системных ресурсах, то Вам, возможно, придется поэкспериментировать различными комбинациями значений параметров, чтобы подобрать некоторый оптимальный набор значений. На рис. 6-1 даны рекомендуемые значения параметров для версии 3.1, в зависимости от объема памяти произвольного доступа. Па- раметры, указанные на рисунке, определены в следующих файлах: /usr/src/uts/master /usr/src/uts/dfile Несколько замечаний к рис. 6-1. Для каждого параметра задается определенное значение, которое указывается в одном из файлов master или dfile. Если перемен- ная определена в обоих файлах, то берется значение из файла dfile. В параметрах, которые служат для установки признаков, вместо размера ставится тире (-). При изменении значений параметров установки признаков размер ядра не меняется, изменяются лишь значения соответствующих признаков. Для систем с 1Мб памяти значения РУФ и NSU не указаны, т.к. РУФ и NSU не могут быть установлены в системах с объемом па- мяти менее 2Мб. При установке РУФ и NSU, для соответствующих параметров задаются значения, рекомендуемые для памяти 2Мб. На рис. 6-1 по умолчанию считается, что ни один из этих паке- тов не установлен. Примечание Значение параметра, указанное в файле master, отменяет- ся, если имя и значение этого параметра внесены в файл dfile. Рис. 6-1. Рекомендуемые значения параметров. Модификация 3.1 ~----------- ----------------------------------- -------------- │ │ Объем памяти │ Число байт │ │Параметр -------- -------- -------- -------- │ │ │ 1Мб │ 2Мб │ 3Мб │ 4Мб │ на элемент │ ----------- -------- -------- -------- -------- -------------- │NBUF │ 100 │ 250 │ 400 │ 600 │ 1076 │ │NCALL │ 60 │ 60 │ 60 │ 60 │ 16 │ │NINODE │ 100 │ 225 │ 300 │ 400 │ 68 │ │NS5INODE │ 100 │ 225 │ 300 │ 400 │ 64 │ │NFILE │ 100 │ 225 │ 300 │ 400 │ 12 │ │NMOUNT │ 25 │ 25 │ 25 │ 25 │ 36 │ │NPROC │ 60 │ 70 │ 80 │ 100 │ 168 │ │NREGION │ 210 │ 245 │ 280 │ 350 │ 36 │ │NCLIST │ 120 │ 120 │ 160 │ 200 │ 72 │ │NMAXUP │ 25 │ 25 │ 30 │ 30 │ - │ │NOFILES │ 20 │ 20 │ 20 │ 20 │ - │ │NHBUF │ 32 │ 64 │ 128 │ 256 │ 12 │ │NPBUF │ 20 │ 20 │ 20 │ 20 │ 52 │ │NAUTOUP │ 10 │ 10 │ 15 │ 15 │ - │ │BDFLUSHR │ 1 │ 1 │ 1 │ 1 │ - │ │MAXPMEM │ 0 │ 0 │ 0 │ 0 │ - │ │SHLBMAX │ 2 │ 2 │ 2 │ 2 │ 12xNPROC │ │FLCKREC │ 100 │ 100 │ 100 │ 100 │ 28 │ │PUTBUFSZ │ 2000 │ 2000 │ 2000 │ 2000 │ - │ │NSRMOUNT │ - │ 50 │ 50 │ 50 │ 28 │ ----------- -------- -------- -------- -------- -------------- │REL │ 3.1 │ 3.1 │ 3.1 │ 3.1 │ - │ │NODE │ unix │ unix │ unix │ unix │ - │ │SYS │ unix │ unix │ unix │ unix │ - │ │VER │ 2 │ 2 │ 2 │ 2 │ - │ ----------- -------- -------- -------- -------- -------------- │MAXSLICE │ 100 │ 100 │ 100 │ 100 │ _ │ ----------- -------- -------- -------- -------- -------------- Рис. 6-1. Рекомендуемые значения параметров. Модификация 3.1 Продолжение ~----------- ----------------------------------- -------------- │ │ Объем памяти │ Число байт │ │Параметр -------- -------- -------- -------- │ │ │ 1Мб │ 2Мб │ 3Мб │ 4Мб │ на элемент │ ----------- -------- -------- -------- -------- -------------- │VHNDFRC │ 16 │ 16 │ 16 │ 16 │ - │ │VHNDR │ 1 │ 1 │ 1 │ 1 │ - │ │GPGSLO │ 15 │ 15 │ 15 │ 15 │ - │ │GPGSHI │ 40 │ 40 │ 40 │ 40 │ - │ │MAXUMEM │ 8192 │ 8192 │ 8192 │ 8192 │ - │ │GPGSMSK │0x000002│0x000002│0x000002│0x000002│ - │ │ │ 20 │ 20│ 20│ 20│ │ │MAXFC │ 1 │ 1 │ 1 │ 1 │ - │ │MAXSC │ 1 │ 1 │ 1 │ 1 │ - │ │MINARMEM │ 25 │ 25 │ 25 │ 25 │ - │ │MINASMEM │ 25 │ 25 │ 25 │ 25 │ - │ ----------- -------- -------- -------- -------- -------------- │NQUEUE │ - │ 256 │ 384 │ 384 │ 36 │ │NSTREAM │ - │ 32 │ 48 │ 48 │ 52 │ │NMUXLINK │ - │ 32 │ 48 │ 48 │ 12 │ │NSTREVENT │ - │ 256 │ 256 │ 256 │ 12 │ │MAXSEPGCNT │ - │ 1 │ 2 │ 2 │ 2048 │ │NBLK4096 │ - │ 0 │ 0 │ 0 │ 4142 │ │NBLK2048 │ _ │ 20 │ 40 │ 40 │ 2094 │ │NBLK1024 │ - │ 12 │ 32 │ 32 │ 1070 │ │NBLK512 │ - │ 8 │ 18 │ 18 │ 558 │ │NBLK256 │ _ │ 16 │ 48 │ 48 │ 302 │ │NBLK128 │ - │ 64 │ 128 │ 128 │ 174 │ │NBLK64 │ - │ 256 │ 256 │ 256 │ 11 │ │NBLK16 │ - │ 128 │ 256 │ 256 │ 61 │ │NBLK4 │ - │ 128 │ 128 │ 128 │ 50 │ │NSTRPUSH │ - │ 9 │ 9 │ 9 │ - │ │STRLOFRAC │ - │ 80 │ 80 │ 80 │ - │ │STRMEDFRAC │ - │ 90 │ 90 │ 90 │ - │ │STRMSGSZ │ - │ 4096 │ 4096 │ 4096 │ - │ │STRCTLSZ │ - │ 1024 │ 1024 │ 1024 │ - │ ----------- -------- -------- -------- -------- -------------- │NLOG │ - │ 3 │ 3 │ 3 │ 12 │ │BSIZE │ - │ 20 │ 20 │ 20 │ - │ ----------- -------- -------- -------- -------- -------------- Рис. 6-1. Рекомендуемые значения параметров. Модификация 3.1 Продолжение ~----------- ----------------------------------- -------------- │ │ Объем памяти │ Число байт │ │Параметр -------- -------- -------- -------- │ │ │ 1Мб │ 2Мб │ 3Мб │ 4Мб │ на элемент │ ----------- -------- -------- -------- -------- -------------- │MSGMAP │ 100 │ 100 │ 100 │ 100 │ 8 │ │MSGMAX │ 2048 │ 2048 │ 2048 │ 2048 │ - │ │MSGMNB │ 4096 │ 4096 │ 4096 │ 4096 │ - │ │MSGMNI │ 50 │ 50 │ 50 │ 50 │ 53 │ │MSGSSZ │ 8 │ 8 │ 8 │ 8 │ 1024 │ │MSGTQL │ 40 │ 40 │ 40 │ 40 │ 12 │ │MSGSEG │ 1024 │ 1024 │ 1024 │ 1024 │ 8 │ ----------- -------- -------- -------- -------- -------------- │SEMMAP │ 10 │ 10 │ 10 │ 10 │ 8 │ │SEMMNI │ 10 │ 10 │ 10 │ 10 │ 32 │ │SEMMNS │ 60 │ 60 │ 60 │ 60 │ 8 │ │SEMMNU │ 30 │ 30 │ 30 │ 30 │ 8x(SEMUME+2) │ │SEMMSL │ 25 │ 25 │ 25 │ 25 │ - │ │SEMOPM │ 10 │ 10 │ 10 │ 10 │ 8 │ │SEMUME │ 10 │ 10 │ 10 │ 10 │ 8xSEMMNU │ │SEMVMX │ 32767 │ 32767 │ 32767 │ 32767 │ - │ │SEMAEM │ 16384 │ 16384 │ 16384 │ 16384 │ - │ ----------- -------- -------- -------- -------- -------------- │SHMMAX │131072 │ 131072│ 131072│ 131072│ - │ │SHMMIN │ 1 │ 1 │ 1 │ 1 │ - │ │SHMMNI │ 100 │ 100 │ 100 │ 100 │ 52 │ │SHMSEG │ 6 │ 6 │ 6 │ 6 │ 12xNPROC │ │SHMALL │ 512 │ 512 │ 512 │ 512 │ - │ ----------- -------- -------- -------- -------- -------------- Параметры ядра Следующие параметры определены в файле master(4). NBUF Число системных буферов. Буфера в системе UNIX об- разуют кеш данных. Кеш данных - это массив памяти, содержащий информацию дисковых файлов. С возраста- нием числа буферов растет коэффициент полезного действия буферизации. Если требуемые данные обна- ружены в кеше, то в результате сокращается число обращений к диску, и тем самым улучшается работа всей системы в целом. Как правило, берутся значе- ния от 100 до 600. Каждый буфер занимает 1076 байт. Для поддержания оптимальных характеристик системы, с ростом числа системных буферов (NBUF) должно увеличиваться и число буферов хеширования (NHBUF). NCALL Задает число элементов в таблице вызовов. Каждый элемент в этой таблице представляет функцию, кото рая позднее должна быть вызвана обработчиком вре- менных прерываний. Значение должно быть больше 2; обычно выбирается в диапазоне от 10 до 70. Каждый элемент занимает 16 байт. Таблица вызовов может использоваться драйверами для проверки состояния аппаратуры. При переполне- нии таблицы вызовов происходит аварийный останов системы, и на консоль выдается сообщение: PANIC: Timeout table overflow NINODE Число элементов в таблице описателей файлов. В этой таблице хранятся описатели файлов, находящих- ся в памяти, то есть активных файлов. Активным файлом может быть, например, текущий каталог, отк- рытый файл, точка монтирования. При изменении зна- чения этой переменной изменяется управляющая структура обработки файлов. Обычно это значение выбирается в диапазоне от 100 до 400. Значение NI- NODE непосредственно связано с величиной NFILE. (NINODE больше или равно NFILE). NINODE обязатель- но должно быть меньше или равно NS5INODE. При зна- чениях NINODE больших чем NS5INODE система нерабо- тоспособна. При переполнении таблицы описателей файлов на консоль выдается следующее предупрежде- ние: WARNING: i-node table overflow NS5INODE Значение NS5INODE должно быть больше или равно NINODE. NFILE Число элементов в таблице открытых файлов. Обычно берется значение от 100 до 400. Каждый элемент имеет размер 12 байт. Каждый элемент в таблице NFILE ссылается непосредственно на один из элемен- тов NINODE. (NFILE меньше или равно NINODE). Уп- равляющая структура NFILE функционирует так же, как и NINODE. Когда таблица переполняется, на кон- соль выдается предупреждение: NOTICE: file table overflow Напомним, что этот параметр не имеет отношения к допустимому числу открытых файлов на один процесс (см. параметр NOFILES). NMOUNT Число элементов в таблице смонтированных файловых систем. Первый элемент - всегда корневая файловая система (/). Если таблица полна, то системный вы- зов mount(2) дает ошибку EBUSY. Поскольку в табли- це смонтированных файловых систем осуществляется последовательный поиск, то значение этого парамет- ра следует задавать как можно меньшим. NPROC Число элементов в таблице процессов. Каждый эле- мент этой таблицы описывает какой-либо активный процесс. Первый элемент - всегда процесс подкачек, второй - /etc/init. Число элементов зависит от числа имеющихся терминальных линий и от числа про- цессов, запускаемых каждым пользователем. Среднее число процессов на одного пользователя - от 2 до 5 (см. также MAXUP, по умолчанию 25). Если таблица полна, то системный вызов fork(2) дает ошибку EAGAIN. Значение NPROC выбирается из диапазона 50 - 200. NREGION Число элементов в таблице областей. Каждый элемент таблицы занимает 36 байт. Большинство процессов имеют 3 области - область команд, область данных и стек. Для каждого подключаемого разделяемого сег- мента памяти и каждой разделяемой библиотеки (ко- манд или данных) требуется дополнительная область. Для программы с разделяемым кодом, элемент табли- цы, соответствующий ее области команд будет разде- ляться всеми программами, выполняющими эту прог- рамму. Каждому разделяемому сегменту памяти, кото- рый подключается к одному или более процессам, со- ответствует один элемент в таблице областей. Ра- зумное начальное значение для этого параметра сос- тавляет примерно 3.5*NPROC. При переполнении таб- лицы областей выдается сообщение Region table overflow. NCLIST Число резервируемых символьных буферов. Каждый бу- фер может содержать до 64 символов. Буферы автома- тически сцепляются и образуют очереди к терминаль- ным устройствам и другим медленным устройствам. Среднее число буферов на один терминал - от 5 до 10. Каждый элемент (буферное пространство плюс за- головок) имеет размер 72 байта. Если буферы исчер- паны, то входные и выходные символы, прочитанные или выведенные на терминал, пропадают, хотя отоб- ражение вводимых символов на экран продолжается. MAXUP Число параллельных процессов, которые может запус- тить один пользователь, не являющийся суперпользо- вателем. Обычно берется значение от 15 до 25. Зна- чение не должно превышать величину NPROC. (NPROC должно быть как минимум на 10% больше чем MAXUP). Значение задает число процессов на одного пользо- вателя, а не на терминал. Так, если 12 человек вошли в систему с одним и тем же идентификатором пользователя, то предельное число процессов будет достигнуто очень быстро. NOFILES Максимальное число открытых файлов на процесс. По умолчанию 20. Значения, большие 20, разрешены только для процессов, использующих системные вызо- вы (например, open(2), creat(2)). Для процессов, использующих стандартные подпрограммы ввода/выво- да, число открытых файлов не может быть больше 20 (независимо от значения NOFILES). Если в инструк- циях к прикладным программам, которыми Вы пользуе- тесь, нет указаний о том, что значение NOFILES следует изменить, то лучше оставить предлагаемое по умолчанию значение 20. Процесс /bin/sh исполь- зует три элемента в таблице файлов: стандартный файл вывода, стандартный файл ввода и стандартный файл регистрации ошибок (каналы 0, 1 и 2 обычно резервируются для файлов stdin, stdout и stderr соответственно). Таким образом, остается NOFILES минус 3 - столько прочих открытых файлов может иметь процесс. Если процессу требуется больше отк- рытых файлов - но не более чем на 3 - то можно закрыть стандартные файлы. Однако, пользоваться этой возможностью НЕ рекомендуется; в случае необ- ходимости - применять с осторожностью. Если в кон- фигурации задано значение NOFILES больше макси- мального (100) или меньше минимального (20), то устанавливается подразумеваемое значение (20), а на консоль выдается предупреждающее сообщение NO TICE. NHBUF Число резервируемых областей хеширования. Они ис- пользуются для быстрого поиска нужного буфера по номеру устройства и номеру блока, для исключения линейного поиска по всей последовательности буфе- ров. Это значение должно быть степенью числа 2. линейного поиска по всей последовательности буфе- ров. Это значение должно быть степенью числа 2. Каждый элемент занимает 12 байт. Значение NHBUF следует выбирать так, чтобы отношение NBUF к NHBUF было примерно 4. NPBUF Число физических буферов ввода/вывода. Для каждой физической операции чтения или записи требуется один буфер ввода/вывода. Каждый буфер ввода/вывода занимает 52 байта. NAUTOUP Параметр NAUTOUP задает срок хранения данных в бу- фере в секундах (для автоматического внесения про- изведенных изменений в файловую систему). Содержи- мое системного буфера в оперативной памяти перио- дически переписывается на жесткий диск с интерва- лом, равным NAUTOUP. При малых значениях надеж- ность системы повышается за счет того, что содер- жимое буферов чаще переписывается на диск; но при этом замедляется работа системы. При больших зна- чениях этого параметра работа системы ускоряется за счет снижения надежности. BDFLUSHR Частота в секундах для проверок необходимости пе- реписки содержимого системных буферов на диск. MAXPMEM Задает максимальный объем физической памяти (в страницах), которую можно использовать. Значение 0 означает, что можно использовать всю имеющуюся фи- зическую память. SHLBMAX Максимальное число разделяемых библиотек, которые могут быть одновременно подключены к одному про- цессу. FLCKREC Задает число сегментов и/или файлов, которые могут быть заблокированы системой. PUTBUFSZ Размер циклического буфера putbuf, в котором со- держится копия последних PUTBUFSZ-символов, выве- денных на консоль операционной системой. Содержи- мое putbuf можно просмотреть при помощи crash(1M). REL Номер модификации системы UNIX. NODE Узловое имя системы (см. процедуру 1.3 "Установка и изменение системного и узлового имен"). SYS Системное имя (см. процедуру 1.3 "Установка и из- менение системного и узлового имен"). VER Номер версии. MAXSLICE Максимальный квант времени, отводимый для выполне- ния пользовательских процессов. Процесс выполняет- ся в течение отведенного кванта времени, а затем откладывется. После этого операционная система вы- бирает процесс с максимальным приоритетом и отво- дит для его выполнения квант в MAXSLICE тактов ча- сов. Обычное значение - секунда (60 тактов часов). Параметры страничной организации памяти В системе имеется страничный демон vhand, единственное назначе- ние которого - по мере необходимости освобождать память. При формировании рабочих пространств процессов в памяти оставляются последние использовавшиеся страницы, а на диск возвращаются те страницы, к которым в течение некоторого времени не было обра- щений. Размер страницы 2048 байт. Если нехватка памяти значи- тельная, то на диск могут быть возвращены рабочие пространства целых процессов. Следующие настраиваемые параметры определяют, как часто и при каких условиях выполняется vhand. Подразумеваемые значения в файле master должны подходить для большинства приложений. VHNDRFRC Служит для определения начального значения пере- менной VHANDL. Величина VHANDL выбирается равной максимальному объему памяти, доступной для пользо- вателей, деленному на VHNDRFRC, либо значению GPGSHI (в зависимости от того, какое из этих зна- чений больше). Величина VHANDL определяет, как часто будет срабатывать vhand. Объем имеющейся свободной памяти сравнивается с VHANDL каждые VHANDR секунд. Если объем свободной памяти VHANDL, то возбуждается демон vhand. Подразумеваемое значение равно 16. Если нужно увеличить активность демона, то уменьшите это значение. Если требуется снизить активность демона - увеличьте значение VHNDRFRC. (Допустимый диапазон - от 0 до 25 процентов общего объема па- мяти). VHANDR Максимальная частота выполнения vhand в секундах. С этой частотой vhand будет срабатывать только, если объем свободной памяти меньше VHANDL (как уже говорилось выше при описании параметра VHNDRFRC). Подразумеваемое значение 1. При увеличении этого значения (которое должно быть целым >0 и <=300) демон становится менее активным. Если установлено значение >1, то его уменьшение приведет к росту активности демона. GPGSLO "Нижняя отметка" объема свободной памяти в страни- цах, при достижении которой демон vhand начинает изымать страницы у процессов. По умолчанию 25. При увеличении этого значения возрастает активность демона, при уменьшении - активность демона снижа- ется. (Значение должно быть целым числом >=0 и 0, >GPGSLO и < 25% от общего числа страниц имеющейся памяти.) GPGSMSK Маска, которую использует страничный демон для оп- ределения "устаревания" страницы: времени, которое должно пройти, прежде чем страница может быть изъ- ята. По умолчанию 0x00000220. Это значение изме- нять не следует. MAXSC Максимальное число страниц, которые будут выталки- ваться за одну операцию. По умолчанию 1. MAXFC Максимальное число страниц, которые будут добав- ляться к списку свободных страниц за одну опера- цию. По умолчанию 1. MAXUMEM Максимальный размер виртуального адресного прост- ранства пользователя в страницах. Это значение не должно превышать 8192. По умолчанию 8192. MINARMEM Минимальное число страниц памяти, резервируемое для сегментов команд и данных пользовательских процессов. MINASMEM Пороговое значение, определяющее число страниц па- мяти и области подкачек, резервируемое для систем- ных целей (недоступно для сегментов команд и дан- ных пользовательских процессов). Параметры потоков Следующие настраиваемые параметры связаны с операциями над по- токами. Значения этих параметров должны быть нулевыми, если только Вы не планируете пользоваться механизмом ПОТОКОВ или па- кетом NSU. NQUEUE Число ПОТОКОВЫХ очередей. Очереди всегда создаются парами, поэтому значение параметра NQUEUE должно быть четным. Минимальный поток содержит четыре очереди - по две к истоку и драйверу. Каждый мо- дуль, добавляемый к потоку, требует еще двух оче- редей. Типичное значение - 8*NSTREAM. NSTREAM Число структур для истоков. Каждый поток, открытый в рамках пользовательского процесса или подключен- ный для мультиплексирования, требует по одной структуре. Подходящее значение зависит от области применения. Для начала рекомендуется выбрать число в диапазоне от 32 до 40. NSTRPUSH Максимальное число модулей, которые могут быть до- бавлены к потоку. Предохраняет от захвата всех очередей одним потоком. Подразумеваемое значение равно 9, но существующие приложения добавляют не более четырех модулей. NSTREVENT Первоначальное число ячеек для регистрации событий в потоках. Ячейки используются для записи информа- ции о процессах в системном вызове poll(2), в реа- лизации ПОТОКОВОГО управляющего действия I_SETSIG [см. streamio(7)] и функции ядра bufcall(). В ка- честве грубой оценки значения параметра снизу мож- но взять ожидаемое число процессов, одновременно выполняющих системный вызов poll(2), умноженное на число мультиплексируемых потоков, плюс число про- цессов, одновременно работающих с потоками. Подра- зумеваемое значение равно 256. Отметим, что данный параметр не накладывает жесткого ограничения на потоках (см. MAXSEPGCNT). MAXSEPGCNT Число дополнительных страниц памяти, которые могут быть выделены динамически под ячейки для регистра- ции событий в потоках. Если значение MAXSEPGCNT равно нулю, доступно NSTREVENT ячеек. Если значе- ние MAXSEPGCNT больше нуля и если запас ячеек ис- черпан, ядро при некоторых обстоятельствах попыта- ется выделить под ячейки дополнительную страницу памяти. Значение MAXSEPGCNT ограничивает количест- во страниц, которые могут быть выделены таким об- разом. Рекомендуется выбрать значение параметра NSTREVENT так, чтобы ячеек почти всегда хватало, а MAXSEPGCNT задать равным 1 на случай особой актив- ности. NMUXLINK Общее количество потоков в системе, подключенных снизу к мультиплексным драйверам (при помощи ко- манды I_LINK ioctl, см. streamio(7)). Разумное значение зависит от характера использования систе- мы. Подразумеваемое значение, равное числу потоков (NSTREAM), гарантирует принципиальную применимость механизма ссылок. STRMSGSZ Максимальное число байт данных, которое один сис- темный вызов может передать в поток, чтобы помес- тить в область данных сообщения. Не следует зада- вать это значение с запасом, так как иначе систем- ные вызовы write(2) или putmsg(2) могут потребо- вать неожиданно много блоков под сообщения. Реко- мендуемое значение 4096 достаточно для существую- щих приложений. STRCTLSZ Максимальное число байт данных, которое один сис- темный вызов может передать в поток, чтобы помес- тить в управляющую область сообщения. Поскольку ограничения, накладываемые на размер сообщений в целом, не относятся к управляющей области, данный параметр представляет собой единственное средство контроля за размером управляющей области. Рекомен- дуемое значение (1024) более чем достаточно для существующих приложений. NBLKn Число ПОТОКОВЫХ буферов и блоков с данными, имею- щих указанный размер. Предусмотрен 25% резерв для заголовков сообщений. Тем самым каждому блоку с данными заведомо соответствует блок сообщения, плюс некоторый запас для дублирования сообщений [функции ядра dupb() и dupmsg()]. Оптимальное зна- чение параметра зависит как от размера оперативной памяти, так и от области приложений. STRLOFRAC Процент уже занятых блоков данного класса, при ко- торых запросы низкого приоритета на размещение бу- феров начнут завершаться неудачей. Например, если STRLOFRAC равен 80 и имеется 48 256-байтных бло- ков, низкоприоритетные запросы будут завершаться неудачей, если уже занято 38 блоков указанного размера. Это значение используется, чтобы избежать тупиковых ситуаций, которые могут возникнуть, если низкоприоритетные запросы заберут ресурсы, необхо- димые для выполнения более важных функций. Для су- ществующих приложений хорошо работает значение 80. Величина STRLOFRAC обязана лежать в пределах от 0 до STRMEDFRAC. STRMEDFRAC Процент уже занятых блоков данного класса, при ко- торых запросы среднего приоритета на размещение буферов начнут завершаться неудачей. Рекомендуется значение 90. Величина STRMEDFRAC обязана лежать в пределах от STRLOFRAC до 100. Примечание Высокоприоритетные запросы не отвергаются автоматически никогда. Можно считать, что для них соответствующий процент равен 100. Параметры драйвера регистрации NLOG Количество младших номеров устройств, обслуживае- мых драйвером регистрации. Допустимые младшие но- мера лежат в пределах от 0 до (NLOG - 1). Рекомен- дуемое значение равно 3, что позволяет регистриро- вать ошибки в ПОТОКАХ [см. strerr(1M)], выводить ПОТОКОВЫЕ трассировочные сообщения [см. stra- ce(1M)] и иметь резерв для других приложений. Если резерв не нужен, годится значение 2. Если резерв должен быть большим, значение NLOG следует соот- ветственно увеличить. BSIZE Число сообщений, которые хранятся в драйвере ре- гистрации после отправки их вверх по потоку про- цессам трассировки или фиксации ошибок. Если драй- вер уже накопил BSIZE сообщений, появление нового сообщения приведет к вытеснению самого старого. Цель хранения нескольких последних сообщений - по- мочь разобраться в причинах аварии системы. Реко- мендуемое значение 20 более чем достаточно даже в случае пиковой загрузки. Параметры службы сообщений Следующие настраиваемые параметры относятся к сообщениям межп- роцессорной связи. MSGMAP Размер управляющей карты, используемой для обра- ботки сегментов сообщений. По умолчанию 100. Каж- дый элемент занимает 8 байт. MSGMAX Максимальный размер сообщения. По умолчанию 2048. Максимальное значение этого параметра равно 64Кб -1. MSGMNB Максимальная длина очереди сообщений. По умолчанию 4096. MSGMNI Максимальное число очередей сообщений в системе. По умолчанию 50. MSGSSZ Размер сегмента сообщений в байтах. Сообщения сос- тоят из непрерывной последовательности сегментов, достаточно большой для того чтобы вместить текст сообщения. По умолчанию 8. Произведение MSGSSZ*MSGSEG должно быть меньше или равно 131072 байт (128Кб). MSGTQL Число заголовков сообщений, находящихся в системе, т.е. число еще не переданных сообщений. По умолча- нию 40. Под каждый элемент отводится 12 байт. MSGSEG Число сегментов сообщений в системе. По умолчанию 1024. Произведение MSGSSZ*MSGSEG должно быть мень- ше или равно 131072 байт (128Кб). Параметры семафоров Следующие настраиваемые параметры относятся к семафорам межпро- цессорной связи. SEMMAP Размер управляющей карты для управления семафора- ми. По умолчанию 10. Каждый элемент занимает 8 байт. SEMMNI Число идентификаторов семафоров в системе. Это число уникальных наборов семафоров, которые могут быть одновременно активны. По умолчанию 10. Каждый элемент занимает 32 байт. SEMMNS Число семафоров в системе. По умолчанию 60. Каждый элемент занимает 8 байт. SEMMNU Максимальное число операций над семафорами, выпол- няемых в проверочном режиме. По умолчанию 30. Раз- мер соответствующей структуры - 8*(SEMUME+2) байт. SEMMSL Максимальное число семафоров, приходящихся на один идентификатор семафора. По умолчанию 25. SEMOPM Максимальное число операций над семафором, которое может быть выполнено за один системный вызов semop(2). По умолчанию 10. Каждый элемент занимает 8 байт. SEMUME Максимальное число элементов в каждой из структур, используемых в операциях, выполняемых над семафо- рами в проверочном режиме. По умолчанию 10. Размер равен 8*SEMMNU байт. SEMVMX Максимальное значение, которе может принимать се- мафор. По умолчанию 32767; это же значение являет- ся максимально допустимым для данного параметра. SEMAEM Задает корректирующее выходное значение для макси- мального значения семафора, синоним semadj. Это значение используется, когда значение семафора становится больше или равно абсолютной величине semop(2), если только в программе не установлено собственное корректирующее значение. По умолчанию 18384, это значение является максимальным, допус- тимым для данного параметра. Параметры разделяемой памяти Следующие настраиваемые параметры относятся к межпроцессной связи посредством разделения памяти. SHMMAX Максимальный размер разделяемого сегмента памяти. По умолчанию 131072. SHMMIN Минимальный размер разделяемого сегмента памяти. По умолчанию 1. SHMMNI Максимальное число сегментов разделяемой памяти в системе. По умолчанию 100. Каждый элемент занимает 52 байта. SHMSEG Число разделяемых сегментов памяти, которые могут быть подключены к одному процессу. По умолчанию 6 Максимальное значение параметра 15. SHMALL Максимальное число используемых разделяемых коман- дных сегментов памяти. По умолчанию 512. Параметры разделения удаленных файлов Параметры РУФ обсуждаются в разд. "Настройка параметров" гл. 10 "Разделение удаленных файлов".