Руководство по системному администрированию: контейнеры в Solaris - управление ресурсами и зонами

Глава 6 Элементы управления ресурсами (обзор)

После определения потребления ресурсов рабочими задачами в системе в соответствии с Глава 4Расширенный учет (обзор) можно задать ограничения по использованию ресурсов. Ограничения позволяют предотвратить чрезмерное потребление ресурсов рабочими нагрузками. В качестве механизма ограничения используются элементы управления ресурсами.

В этой главе рассматриваются следующие темы:

Для получения информации об администрировании элементов управления ресурсами см.Глава 7Администрирование элементов управления ресурсами (задачи).

Новые функции и возможности управления ресурсами в Solaris 10

Набор элементов управления ресурсами, приведенный ниже, заменяет собой настраиваемые средства взаимодействия процессов (IPC) системы System V из /etc/system:

Добавлены следующие элементы управления ресурсами портов событий:

Добавлены следующие элементы управления ресурсами криптографии:

Добавлены следующие дополнительные элементы управления ресурсами:

Для получения дополнительной информации см. Доступные элементы управления ресурсами.

Полный список новых функций 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 

 

KB 

210

 

MB 

220

 

GB 

230

 

TB 

240

 

PB 

250

 

EB 

260

RCTL_GLOBAL_SECONDS 

seconds 

 

Ks 

103

 

Ms 

106

 

Gs 

109

 

Ts 

1012

 

Ps 

1015

 

Es 

1018

RCTL_GLOBAL_COUNT 

count 

none 

 

103

 

106

 

109

 

1012

 

1015

 

1018

С элементами управления ресурсами могут использоваться кратные единицы. В следующем примере демонстрируется пороговое значение в кратных единицах:

task.max-lwps=(priv,1K,deny)

Примечание –

Модификаторы единицы принимаются командами prctl, projadd и projmod. Использование модификаторов единиц в самой базе данных project не допускается.


Значения элементов управления ресурсами и уровни полномочий

Пороговое значение элемента управления ресурсами выступает в качестве точки срабатывания, способной инициировать локальные или глобальные действия, такие как журналирование.

Каждое пороговое значение элемента управления ресурсами должно быть связано с уровнем полномочий. Здесь допускается три уровня полномочий.

Элемент управления ресурсами гарантированно имеет одно системное значение, определяемое системой или поставщиком ресурса. Системное значение определяет количество ресурса, которое может предоставить текущая реализация операционной системы.

Можно определить любое количество привилегированных значений, но только одно базовое значение. Операции, вызываемые без указания значения полномочий, по умолчанию выполняются с базовыми полномочиями.

Уровень полномочий значения элемента управления ресурсами определяется в поле полномочий блока элементов управления ресурсами как RCTL_BASIC, RCTL_PRIVILEGED или RCTL_SYSTEM. Для получения дополнительной информации см. setrctl(2). Для изменения значений, связанных с базовыми и привилегированными уровнями, используется команда prctl.

Глобальные и локальные действия со значениями элементов управления ресурсами

Существуют две категории действий со значениями элементов управления ресурсами: глобальная и локальная.

Глобальные действия со значениями элементов управления ресурсами

Глобальные действия применяются в отношении значений элементов управления ресурсами для каждого элемента управления ресурсами в системе. Команда rctladm, описанная на справочной странице rctladm(1M), позволяет выполнять следующие действия:

Глобальные действия по журналированию для элементов управления ресурсами можно включить или выключить. Для действия syslog можно задать определенную степень с помощью уровня категории, syslog=уровень. Ниже приведены возможные значения параметра уровень:

По умолчанию глобальное журналирование превышения ограничений, устанавливаемых элементом управления ресурсами, не выполняется. В Solaris версии 10 5/08 добавлен уровень n/a, предназначенный для элементов управления ресурсами, для которых невозможно задать какие-либо глобальные действия.

Локальные действия со значениями элементов управления ресурсами

Локальные действия, выполняемые над процессом, который пытается превысить заданное значение. С каждым пороговым значением, заданным для элемента управления ресурсами, можно связать одно или несколько действий. Существуют три типа локальных действий: none, deny и signal=. Эти три действия используются следующим образом:

none

Действия в отношении запросов ресурсов в объемах, превышающих пороговое значение, не производятся. Это действие удобно использовать для наблюдения использования ресурса без воздействия на ход выполнения приложений. Также можно задать глобальное сообщение, информирующее о превышении элемента управления ресурсами, но не затрагивающее процесс, превысивший порог.

deny

Отклонение запросов ресурсов в объеме, превышающем пороговое значение. Например, элемент управления ресурсами task.max-lwps с действием deny приводит к отказу системного вызова fork, если новый процесс попробует превысить управляющее значение. См. справочную страницу fork(2).

signal=

Для случаев превышения элемента управления ресурсами можно задать глобальное действие, сводящееся к выдаче сигнального сообщения. Сигнал передается процессу при превышении порогового значения. Если процесс продолжает потреблять дополнительные ресурсы, новые сигналы не выдаются. Список доступных сигналов приведен в Таблица 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 ]

Глобальные флаги имеют следующие значения.

lowerable

Для снижения привилегированных значений для данного элемента управления не требуются полномочия суперпользователя.

no-deny

Даже в случае превышения пороговых значений доступ к ресурсу никогда не запрещается.

cpu-time

По достижении пороговых значений для этого ресурса возможна передача SIGXCPU.

seconds

Значение времени для элемента управления ресурсами.

no-basic

Значения элемента управления ресурсами с типом полномочий basicзадать невозможно. Установка значений допускается только для привилегированных элементов управления ресурсами.

no-signal

Задать локальные сигнальные действия для значений элементов управления ресурсами невозможно.

no-syslog

Для этого элемента управления ресурсами невозможно определить глобальное действие сообщения syslog.

deny

Отклонение запросов на ресурс при превышении пороговых значений.

count

Значение счетчика (целое число) для элемента управления ресурсами.

bytes

Единица измерения для элемента управления ресурсами.

Для отображения локальных значений и действий для элемента управления ресурсами используется команда 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.

Рисунок 6–1 Совокупности процессов, взаимосвязи контейнеров и наборы элементов управления ресурсами

На схеме показана реализация каждого из элементов управления ресурсами на уровне его контейнера.

Глобальный контроль событий элементов управления ресурсами

Нередко потребление ресурсов процессами неизвестно. Для получения дополнительной информации можно воспользоваться глобальными действиями элементов управления ресурсами, доступными по команде 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. Можно добавлять как базовые, так и привилегированные значения. Также имеется возможность изменения связанных действий. По умолчанию для всех операций настройки предполагается базовый тип, однако процессы и пользователи с полномочиями суперпользователя также могут изменять привилегированные элементы управления ресурсами. Изменение элементов управления ресурсами системы не допускается.

Команды, используемые с элементами управления ресурсами

В приведенной ниже таблице перечислены команды, используемые с элементами управления ресурсами.

Справочная информация по командам 

Описание 

ipcs(1)

Позволяет определить, какие объекты IPC вносят вклад в использование ресурсов проектом. 

prctl(1)

Позволяет проводить опрос и модификацию средств элементов управления ресурсами в локальной области действия. 

rctladm(1M)

Позволяет проводить опрос и модификацию средств элементов управления ресурсами в глобальной области действия. 

На справочной странице resource_controls(5) описаны элементы управления ресурсами, доступные в базе данных project, включая единицы измерения и коэффициенты масштабирования.