Опубликован: 12.11.2008 | Доступ: свободный | Студентов: 3595 / 358 | Оценка: 4.31 / 4.35 | Длительность: 19:07:00
Специальности: Архитектор программного обеспечения
Теги:
Лекция 13:
Настраиваемые параметры
13.4. Описание параметров
13.4.1. Общие параметры ядра
- NCALL - определяет, сколько нужно выделить элементов для таблицы вызовов. Каждый элемент представляет функцию, которая активизируется позже с помощью части подпрограммы ядра взаимодействия с таймером. Это значение должно быть больше 2, оно обычно находится в пределах от 30 до 250. Значение по умолчанию 60. Каждый элемент содержит 16 байтов;
- NFILE - раньше параметр проверял, сколько элементов таблицы открытых файлов нужно выделить. Элементы таблицы файлов распределяются динамически;
- NMOUNT - раньше параметр проверял, сколько элементов монтируемой таблицы нужно выделить. Элементы монтируемой таблицы распределяются динамически;
- NPROC - раньше параметр проверял, сколько выделить элементов таблицы процессов. Элементы таблицы процессов распределяются динамически. NPROC до сих пор применяется какверхнийпределнекоторых пользовательских процессов; до сих пор существует предел в некоторых процессах, созданных каждым пользователем (см. MAXUP);
- NREGION - использование областей памяти было исключено;
- NCLIST - определяет, сколько нужно выделить буферов для списка символов. Каждый буфер содержит до 64 байтов. Буферы соединяются, чтобы сформировать очереди ввода и вывода для линий терминала и других устройств с малой скоростью. Нет необходимости использовать clists в диалоговых драйверах, драйверах целочисленного последовательногопортаиливдрайверах построчно-печатающего устройства (паралельного порта). Механизм clist и настраиваемый параметр NCLIST сохраняются для использования в платах расширений в множественных портах, обеспечиваемых поставщиком;
- MAXUP - определяет, сколько параллельных процессов разрешается выполнять непривилегированному пользователю. Обычно значение элемента находится в диапазоне от 15 до 40. Значение по умолчанию 30. Это значение на один идентификационный номер пользователя, а не на один терминал;
- NOFILES - раньше этот параметр определял максимальное количество открытых файлов на один процесс. Сейчас эта граница системы является частью структуры rlimit (предел ресурса);
- NHBUF - определяет, сколько ячеек хеш-таблицы нужно выделить. Они используются для поиска буфера с номером устройства и номером блока; в этом случае нет надобности осуществлять линейный поиск по всему списку буферов. Каждый элемент содержит 12 байтов. Значение по умолчанию 64. Это значение должно быть степенью 2;
- NPBUF - определяет, сколько физических буферов ввода/вывода нужно выделить. Для каждого физического процесса считывания или записи нужен один буфер ввода/вывода. Каждый элемент содержит 52 байта. Значение по умолчанию 20;
- NPBUF - определяет, сколько физических буферов ввода/вывода нужно выделить. Для каждого физического процесса считывания или записи нужен один буфер ввода/вывода. Каждый элемент содержит 52 байта. Значение по умолчанию 20;
- FDFLUSHR - определяет в секундах скорость проверки необходимости записи буферов файловой системы на диск. Значение по умолчанию 1 секунда. Этот параметр заменяет BDFLUSHR, используемый в SVR3.2;
- BDFLUSHR - этот параметр системы SVR3.2 был переименован в FDFLUSHR ;
- MAXPMEM - определяет максимальный объем физической памяти для использования на страницах памяти. Значение по умолчанию 0 определяет, что используется весь объем имеющейся физической памяти;
- SHLBMAX - определяет максимальное число статических общих библиотек, которые могут быть подключены к процессу одновременно. Система SVR4.0 Version1.0 также поддерживает динамические общие библиотеки. Этот параметр влияет на использование статических общих библиотек только в прикладных программах системы SVR3.2;
- FLCKREC - раньше этот параметр контролировал количество структур записей с блокировкой, используемых системой. Эти элементы распределяются динамически;
- PUTBUFSZ - определяет размер циклического буфера putbuf, который используется для хранения в нем копии последних символов PUTBUFSZ, записанных на консоль операционной системой. Содержимое putbuf можно обследовать, используя команду crash(1M) ;
- MAXSLICE - определяет с помощью отметок времени максимальный квант времени для пользовательских процессов. После выполнения процесса в течение выделенного времени, этот процесс приостанавливается. Затем операционная система координирует процессы с наивысшим приоритетом и выделяет для них отметки времени MAXSLICE. Обычно значение MAXSLICE 1 секунда;
- ULIMIT - раньше этот параметр определял размер самого большого файла, который обычный пользователь может записать в 512-байтовые блоки. Заменяется параметрами SFNOLIM и HFNOLIM ;
- SPTMAP - определяет размер массива элементов карты, используемого для управления пространством для виртуального адреса ядра. Пользователи не должны изменять этот параметр;
- PIOMAP - определяет размер массива элементов карты, используемого в команде останова программируемого ввода/вывода ядра. Эта программа позволяет драйверам устройств осуществлять программируемый ввод/вывод больших блоков данных на уровне прерывания путем разбиения блоков данных на меньшие единицы данных. Пользователи не должны изменять этот параметр;
- PIOMAXSZ - максимальное количество страниц памяти для одноразового использования во время программируемого ввода/вывода. Пользователи не должны изменять этот параметр;
- MAXMINOR - этот параметр ограничивает максимальный номер устройства, который может иметь узел устройства, созданный при вызове команды mknod(2). Хотя сейчас система UNIX допускает номер устройства до 0x37777,этот параметр ограничивается пределом 255 системы SVR3.2 (в целях обеспечения совместимости);
- NGROUPS_MAX - определяет число групп пользователей, которым может принадлежать пользователь. Система SVR4.0 имеет новое свойство, позволяющее пользователю иметь доступ одновременно к многочисленным группам, не выполняя команду newgrp. Значение по умолчанию 16. Ядро ограничивает значения этого параметра диапазоном от 0 до 32, несмотря на установку настраиваемого параметра;
- NBUF - блок ввода/вывода использует и буферы и заголовки буферов. Когда нужен заголовок буфера, а свободных заголовков нет, система динамически выделяет больше заголовков буферов по несколько порций заголовков NBUF за один раз. Общее число заголовков в системе не ограничивается, однако настраиваемый параметр BUFNWM ограничивает количество килобайтов, используемых буферами, а это, в свою очередь, эффективно ограничивает количество заголовков буферов, которые будут выделены. После выделения пространства для заголовков буферов его нельзя освободить для других целей. Поэтому надо быть осторожным, когда увеличиваете значение NBUF. Более высокое значение NBUF уменьшает количество вызовов программы распределения ресурсов памяти ядра, которая вызывается для выделения пространства для заголовков буферов; но это может также привести к выделению ненужных заголовков;
- BUFNWM - ограничивает количество килобайтов памяти, которую может использовать блок буферов ввода/вывода. Если sar -b показывает, что коэффициент совпадения буферов низкий, тогда нужно увеличить значение параметра BUFNWM ;
- ARG_MAX - это максимальное количество символов (включая NULL (нулевые) символы), допускаемое в установках аргументов и строк среды. Его можно увеличить, обеспечив тем самым большее количество списков аргументов, но оно не должно быть меньше 5120;
- RSTCHOWN - определяет признак изменений принадлежности ограниченного файла. Достоверными значениями RTSCHOWN являются только 0 и 1. Находясь в системе SVR3, владелец файла может изменить значение userID и groupID файла на любое другое, включая значения несуществующих userID и groupID. Значение RTSCHOWN, установленное в 1, обозначает режим совместимости FIPS/BSD. Это ограничивает возможность изменить принадлежность файла. Только привилегированный пользователь или корневые процессы (значение эффективного идентификатора которого равно 0) могут изменять принадлежность файла. Владелец файла может только заменить идентификатор группы файла на одну из групп, членом которой является владелец. Привилегированный пользователь и корневые прцессы могут изменить значение идентификатора групп файла на любое другое.
13.4.2. Параметры файловой системы
- NINODE - определяет количество элементов в таблице индексных дескрипторов файлов "s5". "s5" относится к типу файловой системы "System V". В системе SVR3.2 этот параметр управлял всеми индексными дескрипторами файлов систем всех типов. В системе SVR4.0 механизм vnode заменяет переключатель файловой системы, а NINODE определяет только число индексных дескрипторов файлов "s5". В SVR4.0 таблица индексных дескрипторв файлов фактически является связанным списком. Каждый элемент имеет 204 Кбайта. Эмпирическое правило - выделить 100 для каждого мегабайта памяти, допуская что "s5" - главный используемый тип файловойсистемы. Использование "sar -v" помогает убедиться, что этот параметр установлен правильно;
- NS5INODE - параметр удален. (См. NINODE );
- UFSNINODE - количество элементов индексных дескрипторов файлов системы ufs. Если главной файловой системой является ufs, тогда должно быть выделено приблизительно 100 элементов индексных дескрипторов файлов на каждый мегабайт памяти;
- NDQUOT - размер таблицы ядра пространства, выделенного для файловой системы ufs. Для каждого пользователя - 1 элемент; поэтому значение NDQUOT должно быть больше максимального числа пользователей, которые могут войти в систему, если ufs - главный тип файловой системы. Если выделенное пространство задействовано, тогда элементы таблицы ограничивают количество выделенного дискового пространства. Если элементов нет, на операторском терминале печатается сообщение "dquot table full". Если это происходит, нужно увеличить значение NDQUOT ;
- NRNODE - максимальное количество структур rnode, которое выделяется для NFS (файловой системы сети). Значение по умолчанию 300;
- S52KNBUF - раньше определял сколько 2 Кбайтов буферов системы нужно выделить. Этот параметр не фунционирует в SVR4.0;
- S52KNHBUF - раньше определял, сколько ячеек хеш-таблицы нужно выделить для 2 Кбайтов буферов. Этот параметр не функционирует в системе SVR4.0.
13.4.3. Параметры подкачки
Следующие параметры используются ядром системы и следующим процессом подкачки pageout, которые отвечают за освобождение области памяти по мере надобности:
- VHNDFRAC - раньше управлял параметром следующего процесса подкачки в SVR3.2. Заново реализован в SVR4.0
- AGEINTERVAL - раньше управлял параметром следящего процесса подкачки в SVR3.2. Заново реализован в SVR4.0;
- GPGSLO - определяет нижнюю отметку свободной памяти в страницах, чтобы следящий процесс pageout начал изъятие страниц из процессов. Значение по умолчанию 25. Увеличьте значение, чтобы сделать следящий процесс более активным; уменьшите значение, чтобы сделать следящий процесс менее активным (это должно быть целое число >=0);
- GPGSHI - раньше управлял параметром следящего процесса подкачки в SVR3.2. Заново реализован в SVR4.0; - раньше управлял параметром следящего процесса подкачки в SVR3.2. Заново реализован в SVR4.0;
- MAXSC - раньше управлял параметром следящего процесса подкачки в SVR3.2. Заново реализован в SVR4.0;
- MAXFC - раньше - параметр следящего процесса подкачки в SVR3.2. Заменяется параметрами SVMMLIN и HVMMLIN ;
- MAXUMEM - раньше определял максимальный размер пространства виртуального адреса пользователя в страницах в SVR3.2; DFN MINARMEM определяет минимальное количество страниц памяти для текстов и сегментов данных пользовательских процессов;
- MINASMEM - пороговое значение, определяющее количество страниц памяти и подкачки для целей системы;
- MINAKMEM - пороговое значение минимального количества страниц, зарезервированное как непостоянное пороговое значение kmem_alloc во избежание тупиковых ситуаций;
- MINHIDUSTK - раньше ассоциировался с местом пользовательского стека в SVR3.2. Этот параметр не функционирует в SVR4.0;
- MINUSTKGAP - раньше ассоциировался с местом пользовательского стека в SVR3.2. Этот параметр не функционирует в SVR4.0;
- PAGES_UNLOCK - этот параметр использовался в ранней версии SVR4 и остался формальным параметром.
13.4.4. Параметры STREAMS
Следующие параметры связаны с обработкой потоков данных:
- NQUEUE - раньше определял количество очередей STREAMS для конфигурации. Очереди выделяются динамически;
- NSTREAM - раньше определял количество структур "Stream_head" для конфигурации. Эти структуры выделяются динамически;
- NSTRPUSH - максимальное количество модулей, которые можно запустить в поток. Используется для предотвращения использования всех имеющихся очередей в одном потоке со стороны ошибочного пользовательского процесса. По умолчанию это значение 9, на практике же существующие прикладные программы помещают в поток самое большее 4 модуля;
- NSTREVENT - раньше определял начальное количество ячеек памяти потока для конфигурации. Выделяются динамически;
- MAXSEPGCNT - раньше определял количество дополнительных страниц памяти, которые динамически распределяются. Этот параметр не функционирует в SVR4.0;
- NMUXLINK - раньше определял максимальное число связей мультиплексоров для конфигурирования. Распределяется динамически;
- STRMSGSZ - максимально допустимый размер порции данных любого сообщения STREAMS. Значение устанавливается довольно большое, чтобы разместить защищенные данные (с максимальным пакетным размером) всех конфигурированных модулей STREAMS. Значение 0 указывает на отсутствие верхнего предела;
- STRCTLSZ - максимально допустимый размер контрольной порции данных любого сообщения STREAMS. Контрольная порция данных сообщения putmsg(2) не подлежит ограничению по пакетному размеру, поэтому вводимое здесь значение - единственно возможный способ ограничения контрольной части сообщения. Рекомендуемое значение 1024 - более чем достаточно для существующих прикладных программ;
- STRTHRESH - максимальное общее количество байтов, обычно допускаемое для распределения потоков данных. Когда порог перейден, пользователям без привилегий не разрешается открывать потоки, помещать модули в потоки или записывать на потоковые устройства; то же самое относится к параметру ENOSR (он вне ресурсов потоков). Привилегированным пользователям разрешается делать все. Обратите внимание, что пороговое значение относится только к выходным данным, поэтому на входные данные это не влияет. Значение 0 обозначает, что порога нет;
- STRLOFRAC - раньше определял процент блоков данных данного класса, в котором автоматически не выполнялись запросы на выделение блоков с низким приоритетом. Этот параметр не функционирует в SVR4.0;
- STRMEDFRAC - раньше определял процент остановов, при котором не выполнялось распределение блоков со средним приоритетом. Этот параметр не функционирует в SVR4.0;
- NLOG - определяет количество номеров устройств, имеющихся в аналоговом интерфейсе драйвера регистрации ( /dev/sp ), поддерживаемых системой;
- NUMSP - определяет количество устройств программного канала STREAMS, поддерживаемых системой;
- NUMTIM - максимальное количество модулей STREAMS, которые можно ввести в интерфейс транспортной библиотеки (TLI). Это значение контролирует количество структур данных, используемых для хранения данных конфигурации модулей, введенных в потоки;
- NUMTRW - определяет количество структур данных для считывания/записи в TLI, которое нужно выделить в пространстве данных ядра системы;
- NUMSAD - количество номеров устройств, имеющееся в драйвере администратора потоков (SAD);
- NSTRPHASH - размер внутренних ячеек хеш-таблицы. Этот параметр не нужно изменять, если количество драйверов в системе не станет очень большим;
- NAUTOPUSH - количествоустройств,которые можно сконфигурировать для автопроталкивания в стек. Если SAD_SAP ioctl не выполняется с errno, установленным в значение ENOSR, тогда это количество нужно увеличить.