После определения потребления ресурсов рабочими задачами в системе в соответствии с Глава 4Расширенный учет (обзор) можно задать ограничения по использованию ресурсов. Ограничения позволяют предотвратить чрезмерное потребление ресурсов рабочими нагрузками. В качестве механизма ограничения используются элементы управления ресурсами.
В этой главе рассматриваются следующие темы:
Для получения информации об администрировании элементов управления ресурсами см.Глава 7Администрирование элементов управления ресурсами (задачи).
Набор элементов управления ресурсами, приведенный ниже, заменяет собой настраиваемые средства взаимодействия процессов (IPC) системы System V из /etc/system:
project.max-shm-ids
project.max-msg-ids
project.max-sem-ids
project.max-shm-memory
process.max-sem-nsems
process.max-sem-ops
process.max-msg-qbytes
Добавлены следующие элементы управления ресурсами портов событий:
project.max-device-locked-memory
project.max-port-ids
process.max-port-events
Добавлены следующие элементы управления ресурсами криптографии:
project.max-crypto-memory
Добавлены следующие дополнительные элементы управления ресурсами:
project.max-lwps
project.max-tasks
project.max-contracts
Для получения дополнительной информации см. Доступные элементы управления ресурсами.
Полный список новых функций Solaris 10 и описание версий Solaris приведены в Solaris 10 What’s New.
В операционной системе Solaris концепция ограничения ресурсов для отдельных процессов была расширена и распространяется также на экземпляры задач и проектов в соответствии с описанием в Глава 2Проекты и задачи (обзор). Эти расширения обеспечиваются механизмом элементов управления ресурсами (rctls). Кроме того, схемы распределения, ранее назначавшиеся посредством настраиваемых значений в /etc/system, теперь настраиваются автоматически или также через механизм элементов управления ресурсами.
Элемент управления ресурсами идентифицируется по префиксу zone, project, task или process. Управление ресурсами может настраиваться на уровне всей системы в целом. Для обновления значений элементов управления ресурсами остановка системы не требуется.
Список стандартных элементов управления ресурсами, доступных в этой версии, приведены в Доступные элементы управления ресурсами. Информацию относительно доступных элементов управления ресурсами всей зоны приведены в Свойства типов ресурса.
Список стандартных элементов управления ресурсами, доступных в этой версии, приведены в Доступные элементы управления ресурсами.
В системах UNIX традиционно имеется средство ограничения ресурсов ( rlimit). Средство rlimit позволяет администратору задать одно или несколько численных ограничений количества ресурсов, потребляемых процессом. К числу этих ограничений относится процессорное время, потребляемое каждым процессом, размер файла дампа оперативной памяти и максимальный размер кучи для каждого процесса. Размер кучи – это количество рабочей памяти, выделяемой для сегмента данных процесса.
Механизм элементов управления ресурсами предоставляет интерфейсы, обеспечивающие совместимость с утилитой ограничения потребления ресурсов. Существующие приложения, использующие ограничения ресурсов, будут работать без изменений. Подобные приложения обрабатываются таким же образом, как и приложения, модифицированные для использования механизма элементов управления ресурсами.
Процессы могут взаимодействовать между собой посредством одного из типов взаимодействия процессов (IPC). IPC позволяет передавать информацию или выполнять синхронизацию между процессами. В Solaris до версии 10 настраиваемые параметры IPC задавались путем добавления записи в файл /etc/system. Теперь же механизм элементов управления ресурсами предоставляет элементы управления ресурсами, определяющие поведение настроек IPC ядра. В Solaris до версии 10 настраиваемые параметры IPC задавались путем добавления записи в файл /etc/system.
Устаревшие параметры в данной системе Solaris могут быть добавлены в файл /etc/system. В таком случае эти параметры используются для инициализации значений элементов управления ресурсами по умолчанию, как и в предыдущих версиях Solaris. Однако использовать устаревшие параметры не рекомендуется.
Для выявления объектов IPC, вносящих свой вклад в потребление ресурсов проектом, используется команда ipcs с параметром -J. См. пример результата ее работы в Использование команды ipcs. Для получения дополнительной информации о команде ipcs см. ipcs(1).
Для получения дополнительной информации о настройке системы Solaris см. Solaris Tunable Parameters Reference Manual .
Элементы управления ресурсами обеспечивают механизм для ограничения потребления системных ресурсов. Появляется возможность предотвращения занятия указанных системных ресурсов теми или иными процессами, задачами, проектами и зонами. Этот механизм позволяет добиться большей управляемости системы и предотвращает чрезмерное потребление ресурсов.
Механизмы ограничения могут использоваться для поддержки процессов планирования рабочей мощности. Возникшее превышение ограничения может просто приводить к информированию о ресурсах, требуемых приложением; отказ в предоставлении этих ресурсов приложению не является обязательным следствием.
Элементы управления ресурсами также могут использоваться в качестве простого механизма атрибутов для средств управления ресурсами. Например, количество долей ЦП, предоставленных проекту в классе планирования планировщика долевого распределения (FSS), определяется элементом управления ресурсами project.cpu-shares. Поскольку элемент управления присваивает проекту фиксированное количество долей, разнообразные действия, связанные с элементом управления, не имеют силы. В этом контексте текущее значение элемента управления project.cpu-shares считается атрибутом указанного проекта.
Другой тип атрибута проекта используется для регулирования потребления ресурсов физической памяти наборами процессов, связанных с проектом. Эти атрибуты снабжаются префиксом rcap, например rcap.max-rss . Подобно элементам управления ресурсами, этот тип атрибута настраивается в базе данных project. Однако, несмотря на синхронное применение элементов управления ресурсами в ядре, на уровне пользователя лимиты ресурсов реализуются демоном ограниченного выделения ресурсов rcapd в асинхронном режиме. Для получения информации о демоне rcapd см. Глава 10Управление физической памятью с помощью демона ограниченного выделения ресурсов (обзор) и rcapd (1M).
Атрибут project.pool используется для установки привязки к пулу для проекта. Для получения дополнительной информации о пулах ресурсов см. Глава 12Пулы ресурсов (обзор).
Механизм элементов управления ресурсами настраивается посредством базы данных project . См. Глава 2Проекты и задачи (обзор). Элементы управления ресурсами и другие атрибуты задаются в последнем поле записи базы данных project. Значения, связанные с каждым элементом управления ресурсами, заключаются в круглые скобки и выводятся в виде простого текста, разделенного запятыми. Значения в круглых скобках представляют собой "выражения действия". Каждое выражение действия состоит из уровня полномочий, порогового значения и действия, связанного с определенным пороговым значением. Каждому элементу управления ресурсами может соответствовать несколько выражений действия, также разделенных запятыми. Ниже показано определение ограничения по легковесным процессам для каждой задачи, а также ограничение максимального потребления процессорного времени для каждого процесса в проекте. process.max-cpu-time передает процессу сигнал SIGTERM после работы процесса в течение 1 часа и сигнал SIGKILL, если процесс продолжает выполняться в течение 1 часа и 1 минуты. См. Таблица 6–3.
development:101:Developers:::task.max-lwps=(privileged,10,deny); process.max-cpu-time=(basic,3600,signal=TERM),(priv,3660,signal=KILL) typed as one line |
В системах с включенными зонами элементы управления ресурсами для всей зоны задаются в несколько другом формате. Для получения дополнительной информации см.Конфигурационные данные зоны.
Команда rctladm позволяет опрашивать и модифицировать настройки элементов управления ресурсами во время выполнения в глобальной области действия. Команда prctl позволяет опрашивать и модифицировать настройки элементов управления ресурсами во время выполнения влокальной области действия.
Для получения дополнительной информации см.Глобальные и локальные действия со значениями элементов управления ресурсами, rctladm(1M) и prctl(1).
В системах с установленными зонами использовать rctladm в неглобальной зоне для изменения параметров настройки невозможно. Для просмотра глобального состояния журналирования каждого элемента управления ресурсами можно воспользоваться командой rctladm в неглобальной зоне.
В следующей таблице приводится список стандартных элементов управления ресурсами, доступных в этой версии.
В таблице указывается ресурс, ограничиваемый каждым элементом управления. В таблице также представлены единицы, используемые по умолчанию для данного ресурса в базе данных project. Единицы по умолчанию могут быть двух типов:
Количества соответствуют ограниченным объемам.
Индексы соответствуют максимально допустимым идентификаторам.
Так, project.cpu-sharesуказывает количество долей, которые разрешено использовать для проекта. process.max-file-descriptor указывает наивысший номер файла, который может быть назначен процессу системным вызовом open(2).
Таблица 6–1 Стандартные элементы управления ресурсами
Имя элемента управления |
Описание |
Единица по умолчанию |
---|---|---|
project.cpu-cap |
Solaris 10 8/07:абсолютное ограничение по количеству ресурсов ЦП, потребляемых проектом. Значение 100 означает, что в качестве project.cpu-cap задано 100% одного ЦП. Значение 125 соответствует 125%, т.к. 100% – это один полностью загруженный ЦП в системе при использовании ограничений по ЦП. |
Количество (число ЦП) |
project.cpu-shares |
Число долей ЦП, выделенных данному проекту планировщиком долевого распределения (FSS) (см. FSS(7)). |
Количество (доли) |
project.max-crypto-memory |
Общий объем памяти ядра, который может использоваться libpkcs11 для аппаратного ускорения криптографических операций. На основании этого элемента управления ресурсами определяются ограничения буферов ядра и связанных с сеансом структур. |
Размер (байты) |
project.max-locked-memory |
Общее количество разрешенной физической блокированной памяти. Если пользователю назначается priv_proc_lock_memory, следует рассмотреть возможность установки также и этого элемента управления ресурсами для предотвращения блокирования пользователем всей памяти. Solaris 10 8/07: Следует отметить, что в Solaris 10 8/07 этот элемент управления ресурсами заменяет изъятый элемент project.max-device-locked-memory. |
Размер (байты) |
project.max-port-ids |
Максимальное допустимое количество портов событий. |
Количество (число портов событий) |
project.max-sem-ids |
Максимальное количество идентификаторов семафоров, разрешенное для этого проекта. |
Количество (идентифика- торы семафоров) |
project.max-shm-ids |
Максимальное количество идентификаторов совместно используемой памяти, разрешенное для этого проекта. |
Количество (идентифика- торы совместно используемой памяти) |
project.max-msg-ids |
Максимальное количество идентификаторов очереди сообщений, разрешенное для этого проекта. |
Количество (идентифика- торы очередей сообщений) |
project.max-shm-memory |
Общий объем совместно используемой памяти System V, разрешенный для этого проекта. |
Размер (байты) |
project.max-lwps |
Максимальное количество LWP, одновременно доступных этому проекту. |
Количество (LWP) |
project.max-tasks |
Максимальное количество задач, разрешенных для этого проекта. |
Количество (число задач) |
project.max-contracts |
Максимальное количество контрактов, разрешенных для этого проекта. |
Количество (контрактов) |
task.max-cpu-time |
Максимальное процессорное время, доступное процессам этой задачи. |
Время (секунды) |
task.max-lwps |
Максимальное количество LWP, одновременно доступных процессам этой задачи. |
Количество (LWP) |
process.max-cpu-time |
Максимальное процессорное время, доступное этому процессу. |
Время (секунды) |
process.max-file-descriptor |
Максимальный индекс дескриптора файла, доступный этому процессу. |
Индекс (максимальный дескриптор файла) |
process.max-file-size |
Максимальное смещение в файле, доступное данному проекту для записи. |
Размер (байты) |
process.max-core-size |
Максимальный размер файла дампа оперативной памяти, создаваемого этим процессом. |
Размер (байты) |
process.max-data-size |
Максимальный размер кучи, доступной этому процессу. |
Размер (байты) |
process.max-stack-size |
Максимальный сегмент памяти стека, доступный этому процессу. |
Размер (байты) |
process.max-address-space |
Максимальный размер адресного пространства, полученный суммированием размеров сегментов, доступных данному процессу. |
Размер (байты) |
process.max-port-events |
Максимально допустимое количество событий для каждого порта события. |
Количество (число событий) |
process.max-sem-nsems |
Максимальное количество идентификаторов семафоров, разрешенных для набора семафоров. |
Количество (семафоров в наборе) |
process.max-sem-ops |
Максимальное количество операций семафора, разрешенных для одного вызова semop (значение, скопированное из элемента управления ресурсами в момент времени semget()). |
Количество (число операций) |
process.max-msg-qbytes |
Максимальное количество байт сообщений в очереди сообщений (значение, скопированное из элемента управления ресурсами в момент времени msgget()). |
Размер (байты) |
process.max-msg-messages |
Максимальное количество сообщений в очереди сообщений (значение, скопированное из элемента управления ресурсами в момент времени msgget()). |
Количество (число сообщений) |
Таким образом можно отобразить значения по умолчанию для элементов управления ресурсами в системе, в которой элементы управления ресурсами не задавались и не изменялись. В подобной системе в /etc/system или в базе данных project отсутствуют записи, отличные от значений по умолчанию. Для вывода значений используется команда prctl.
Элементы управления ресурсами всей зоны позволяют ограничить суммарное потребление ресурсов всеми экземплярами процессов внутри зоны. Параметры управления ресурсами для всей зоны можно установить с помощью глобальных имен свойств, описанных в Установка элементов управления ресурсами всей зоны и Настройка зоны.
Таблица 6–2 Элементы управления ресурсами всей зоны
Имя элемента управления |
Описание |
Единица по умолчанию |
---|---|---|
zone.cpu-cap |
Solaris 10 5/08: Абсолютное ограничение по количеству ресурсов ЦП, потребляемых неглобальной зоной. Значение 100 означает, что в качестве project.cpu-cap задано 100% одного ЦП. Значение 125 соответствует 125%, т.к. 100% – это один полностью загруженный ЦП в системе при использовании ограничений по ЦП. |
Количество (число ЦП) |
zone.cpu-shares |
Количество процессорных долей в соответствии с планировщиком долевого распределения (FSS) для этой зоны. |
Количество (доли) |
zone.max-locked-memory |
Общее количество доступной зоне физической блокированной памяти. Если зоне назначается priv_proc_lock_memory, следует рассмотреть возможность задания также и этого элемента управления ресурсами для предотвращения блокирования зоной всей памяти. |
Размер (байты) |
zone.max-lwps |
Максимальное количество LWP, одновременно доступных этой зоне. |
Количество (LWP) |
zone.max-msg-ids |
Максимальное количество идентификаторов очередей сообщений, разрешенное для этой зоны. |
Количество (идентифика- торы очередей сообщений) |
zone.max-sem-ids |
Максимальное количество идентификаторов семафоров, разрешенных для этой зоны. |
Количество (идентифика- торы семафоров) |
zone.max-shm-ids |
Максимальное количество идентификаторов совместно используемой памяти, разрешенных для этой зоны. |
Количество (идентифика- торы совместно используемой памяти) |
zone.max-shm-memory |
Общий объем совместно используемой памяти System V, разрешенный для этой зоны. |
Размер (байты) |
zone.max-swap |
Общий объем подкачки, доступный для потребления при отображении адресного пространства пользовательских процессов и файловых систем tmpfs в этой зоне. |
Размер (байты) |
Для получения информации о настройке элементов управления ресурсами для всей зоны см. Свойства типов ресурса и Настройка зоны. Информацию по использованию элементов управления ресурсами для всей зоны в типизированных зонах lx приведены в Настройка, проверка и сохранение параметров типизированной зоны lx.
Следует отметить, что общезоновый элемент управления ресурсами можно применить и к глобальной зоне. Для получения дополнительной информации см. Глава 17Настройка неглобальной зоны (обзор) и Использование планировщика долевого распределения в системе Solaris с установленными зонами.
Для всех элементов управления ресурсами определяются глобальные флаги, идентифицирующие типы элементов управления ресурсами. Флаги используются для передачи базовой информации приложениям, например команде prctl. Эта информация используется приложениями для определения следующих значений:
строки единиц измерения, подходящих для каждого элемента управления ресурсами;
правильного масштаба для интерпретации масштабируемых значений.
Доступны следующие глобальные флаги:
Глобальный флаг |
Строка типа элемента управления ресурсами |
Модификатор |
Шкала |
---|---|---|---|
RCTL_GLOBAL_BYTES |
bytes |
B |
1 |
|
KB |
210 |
|
|
MB |
220 |
|
|
GB |
230 |
|
|
TB |
240 |
|
|
PB |
250 |
|
|
EB |
260 |
|
RCTL_GLOBAL_SECONDS |
seconds |
s |
1 |
|
Ks |
103 |
|
|
Ms |
106 |
|
|
Gs |
109 |
|
|
Ts |
1012 |
|
|
Ps |
1015 |
|
|
Es |
1018 |
|
RCTL_GLOBAL_COUNT |
count |
none |
1 |
|
K |
103 |
|
|
M |
106 |
|
|
G |
109 |
|
|
T |
1012 |
|
|
P |
1015 |
|
|
E |
1018 |
С элементами управления ресурсами могут использоваться кратные единицы. В следующем примере демонстрируется пороговое значение в кратных единицах:
task.max-lwps=(priv,1K,deny)
Модификаторы единицы принимаются командами prctl, projadd и projmod. Использование модификаторов единиц в самой базе данных project не допускается.
Пороговое значение элемента управления ресурсами выступает в качестве точки срабатывания, способной инициировать локальные или глобальные действия, такие как журналирование.
Каждое пороговое значение элемента управления ресурсами должно быть связано с уровнем полномочий. Здесь допускается три уровня полномочий.
базовый (Basic), подлежащий изменению владельцем вызывающего процесса;
привилегированный (Privileged), для которого допускается изменение только привилегированными пользователями (суперпользователями);
системный (System), фиксированный в течение времени существования экземпляра операционной системы.
Элемент управления ресурсами гарантированно имеет одно системное значение, определяемое системой или поставщиком ресурса. Системное значение определяет количество ресурса, которое может предоставить текущая реализация операционной системы.
Можно определить любое количество привилегированных значений, но только одно базовое значение. Операции, вызываемые без указания значения полномочий, по умолчанию выполняются с базовыми полномочиями.
Уровень полномочий значения элемента управления ресурсами определяется в поле полномочий блока элементов управления ресурсами как RCTL_BASIC, RCTL_PRIVILEGED или RCTL_SYSTEM. Для получения дополнительной информации см. setrctl(2). Для изменения значений, связанных с базовыми и привилегированными уровнями, используется команда prctl.
Существуют две категории действий со значениями элементов управления ресурсами: глобальная и локальная.
Глобальные действия применяются в отношении значений элементов управления ресурсами для каждого элемента управления ресурсами в системе. Команда rctladm, описанная на справочной странице rctladm(1M), позволяет выполнять следующие действия:
отображение глобального состояния активных элементов управления ресурсами системы;
настройка глобальных действий по журналированию.
Глобальные действия по журналированию для элементов управления ресурсами можно включить или выключить. Для действия syslog можно задать определенную степень с помощью уровня категории, syslog=уровень. Ниже приведены возможные значения параметра уровень:
debug
info
notice
warning
err
crit
alert
emerg
По умолчанию глобальное журналирование превышения ограничений, устанавливаемых элементом управления ресурсами, не выполняется. В Solaris версии 10 5/08 добавлен уровень n/a, предназначенный для элементов управления ресурсами, для которых невозможно задать какие-либо глобальные действия.
Локальные действия, выполняемые над процессом, который пытается превысить заданное значение. С каждым пороговым значением, заданным для элемента управления ресурсами, можно связать одно или несколько действий. Существуют три типа локальных действий: none, deny и signal=. Эти три действия используются следующим образом:
Действия в отношении запросов ресурсов в объемах, превышающих пороговое значение, не производятся. Это действие удобно использовать для наблюдения использования ресурса без воздействия на ход выполнения приложений. Также можно задать глобальное сообщение, информирующее о превышении элемента управления ресурсами, но не затрагивающее процесс, превысивший порог.
Отклонение запросов ресурсов в объеме, превышающем пороговое значение. Например, элемент управления ресурсами task.max-lwps с действием deny приводит к отказу системного вызова fork, если новый процесс попробует превысить управляющее значение. См. справочную страницу fork(2).
Для случаев превышения элемента управления ресурсами можно задать глобальное действие, сводящееся к выдаче сигнального сообщения. Сигнал передается процессу при превышении порогового значения. Если процесс продолжает потреблять дополнительные ресурсы, новые сигналы не выдаются. Список доступных сигналов приведен в Таблица 6–3.
Не все действия можно применить к каждому элементу управления ресурсами. Например, процесс не может превысить количество долей ЦП, назначенных проекту, членом которого он является. Поэтому действие deny для элемента управления ресурсами project.cpu-shares не допускается.
Вследствие ограничений, связанных с реализацией, глобальные свойства каждого элемента управления могут ограничивать диапазон доступных действий, которые могут быть заданы для порогового значения. См. справочную страницу rctladm(1M). Список доступных сигнальных действий приведен в следующей таблице. Для получения дополнительной информации о сигналах см. справочную страницу signal(3HEAD).
Таблица 6–3 Сигналы, доступные для значений элементов управления ресурсами
Сигнал |
Описание |
Примечания |
---|---|---|
SIGABRT |
Завершение процесса. |
|
SIGHUP |
Передача сигнала опускания трубки. Возникает при пропадании несущей в открытой линии. Сигнал передается в группу процессов, управляющих терминалом. |
|
SIGTERM |
Завершение процесса. Сигнал завершения, отправляемый программным обеспечением. |
|
SIGKILL |
Завершение процесса и закрытие (kill) программы. |
|
SIGSTOP |
Остановка процесса. Сигнал управления заданиями. |
|
SIGXRES |
Превышение предела элемента управления ресурсами. Генерируется механизмом элементов управления ресурсами. |
|
SIGXFSZ |
Завершение процесса. Превышение предела размера файла. |
Доступен только для элементов управления ресурсами со свойством RCTL_GLOBAL_FILE_SIZE (process.max-file-size). Для получения дополнительной информации см.rctlblk_set_value(3C). |
SIGXCPU |
Завершение процесса. Превышение ограничения по процессорному времени. |
Доступен только для элементов управления ресурсами со свойством RCTL_GLOBAL_CPUTIME (process.max-cpu-time). Для получения дополнительной информации см.rctlblk_set_value(3C). |
С каждым элементом управления ресурсами в системе связан определенный набор свойств. Этот набор свойств определяется как набор флагов, связанных со всеми управляемыми экземплярами данного ресурса. Глобальные флаги не подлежат изменению, однако могут быть считаны с помощью системных вызовов rctladm или getrctl.
Локальные флаги определяют поведение по умолчанию и конфигурацию для определенного порогового значения данного элемента управления ресурсами по определенному процессу или совокупности процессов. Локальные флаги одного порогового значения не воздействуют на поведение других пороговых значений, определенных для того же элемента управления ресурсами. Однако глобальные флаги воздействуют на поведение всех значений, связанных с определенным элементом управления. Локальные флаги можно изменять в пределах ограничений, заданных соответствующими глобальными флагами, командой prctl или системным вызовом setrctl. См. setrctl(2).
Полный список локальных флагов, глобальных флагов и их определений приведены в rctlblk_set_value(3C).
Для определения поведения системы в случае достижения порогового значения по определенному элементу управления ресурсами используется команда rctladm, отображающая глобальные флаги для элемента управления ресурсами. Например, для отображения значений process.max-cpu-time необходимо ввести следующую команду:
$ rctladm process.max-cpu-time process.max-cpu-time syslog=off [ lowerable no-deny cpu-time inf seconds ] |
Глобальные флаги имеют следующие значения.
Для снижения привилегированных значений для данного элемента управления не требуются полномочия суперпользователя.
Даже в случае превышения пороговых значений доступ к ресурсу никогда не запрещается.
По достижении пороговых значений для этого ресурса возможна передача SIGXCPU.
Значение времени для элемента управления ресурсами.
Значения элемента управления ресурсами с типом полномочий basicзадать невозможно. Установка значений допускается только для привилегированных элементов управления ресурсами.
Задать локальные сигнальные действия для значений элементов управления ресурсами невозможно.
Для этого элемента управления ресурсами невозможно определить глобальное действие сообщения syslog.
Отклонение запросов на ресурс при превышении пороговых значений.
Значение счетчика (целое число) для элемента управления ресурсами.
Единица измерения для элемента управления ресурсами.
Для отображения локальных значений и действий для элемента управления ресурсами используется команда prctl.
$ prctl -n process.max-cpu-time $$ process 353939: -ksh NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT process.max-cpu-time privileged 18.4Es inf signal=XCPU - system 18.4Es inf none |
Флаг max (RCTL_LOCAL_MAXIMAL) устанавливается для обоих пороговых значений, а для данного элемента управления ресурсами определяется флаг inf (RCTL_GLOBAL_INFINITE). Значение inf соответствует бесконечному количеству. Это значение никогда не реализуется. Следовательно, в соответствии с конфигурацией оба пороговых показателя представляют собой бесконечные значения, которые не могут быть превышены.
Для ресурса может быть задано несколько элементов управления ресурсами. Элемент управления ресурсами может существовать на каждом уровне контейнеров модели процессов. Если элементы управления ресурсами активны для одного ресурса в контейнерах разных уровней, первым реализуется элемент управления наименьшего контейнера. Таким образом, в случае одновременного срабатывания сначала выполняется действие по process.max-cpu-time, а затем по task.max-cpu-time.
Нередко потребление ресурсов процессами неизвестно. Для получения дополнительной информации можно воспользоваться глобальными действиями элементов управления ресурсами, доступными по команде rctladm. Команда rctladm позволяет установить действие syslog для элемента управления ресурсами. Затем, если какой-либо экземпляр, управляемый данным элементом, сталкивается с пороговым значением, в журнал заносится системное сообщение с заданным уровнем журналирования. Для получения дополнительной информации см. Глава 7Администрирование элементов управления ресурсами (задачи) и справочную страницу rctladm(1M).
Каждый элемент управления ресурсами, приведенный в Таблица 6–1, можно назначить проекту при регистрации или при вызове newtask, su или других средств запуска с поддержкой проектов at, batch или cron. Каждая инициированная команда запускается в отдельной задаче с проектом по умолчанию для вызывающего пользователя. Для получения дополнительной информации см. справочные страницы login(1), newtask(1), at(1), cron(1M) и su(1M).
Обновления записей в базе данных project, будь то файл /etc/project или представление базы данных в сетевой службе имен, не применяются к проектам, активным в настоящее время. Обновления применяются, когда к проекту присоединяется новая задача путем регистрации или командой newtask.
Значения, измененные в базе данных project, вступают в силу только для новых задач, запускаемых в проекте. Однако для обновления элементов управления ресурсами в работающей системе можно использовать команды rctladm и prctl.
Команда rctladm изменяет глобальное состояние журналирования для каждого элемента управления ресурсами по всей системе. Эта команда может использоваться для просмотра глобального состояния и настройки уровня журналирования syslog при превышении управляющих значений.
Просмотр и временное изменение значений элементов управления ресурсами и действий для отдельных процессов, задач или проектов осуществляется при помощи команды prctl. На входе передается идентификатор проекта, задачи или процесса, и команда работает над элементом управления ресурсами на уровне, где он определен.
Все изменения значений и действий вступают в силу немедленно. Однако эти изменения применяются исключительно в отношении текущего процесса, задачи или проекта. Такие изменения не записываются в базу данных project. При перезапуске системы изменения теряются. Постоянные изменения элементов управления ресурсами необходимо вносить в базу данных project.
Командой project также можно изменять все параметры настройки элементов управления ресурсами, для которых возможно изменение в базе данных prctl. Можно добавлять как базовые, так и привилегированные значения. Также имеется возможность изменения связанных действий. По умолчанию для всех операций настройки предполагается базовый тип, однако процессы и пользователи с полномочиями суперпользователя также могут изменять привилегированные элементы управления ресурсами. Изменение элементов управления ресурсами системы не допускается.
В приведенной ниже таблице перечислены команды, используемые с элементами управления ресурсами.
Справочная информация по командам |
Описание |
---|---|
Позволяет определить, какие объекты IPC вносят вклад в использование ресурсов проектом. |
|
Позволяет проводить опрос и модификацию средств элементов управления ресурсами в локальной области действия. |
|
Позволяет проводить опрос и модификацию средств элементов управления ресурсами в глобальной области действия. |
На справочной странице resource_controls(5) описаны элементы управления ресурсами, доступные в базе данных project, включая единицы измерения и коэффициенты масштабирования.