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

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

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

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

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