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

Ограничения и целевые показатели конфигураций

При изменении конфигурации контроллер ресурсов poold действует в соответствии с предоставленными ему директивами. Они указываются в виде ряда ограничений и целевых показателей. Эти спецификации используются poold для определения относительной целесообразности вариантов настройки по сравнению с существующей конфигурацией. Затем poold изменяет распределение ресурсов текущей конфигурации и генерирует новые конфигурации-кандидаты.

Ограничения в конфигурации

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

Для получения дополнительной информации о свойствах пулов см. справочную страницу libpool(3LIB) и Свойства пулов.

Ограничения посредством свойств pset.min и pset.max

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

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

Ограничения посредством свойства cpu.pinned

Свойство cpu-pinned указывает, что определенный процессор не должен покидать набор процессоров, в котором он расположен, в результате действий DPR. Это свойство libpool можно использовать для максимизации использования кэша определенным приложением, выполняющимся внутри набора процессоров.

Дополнительную информацию об этом свойстве приведены в Таблица 12–1.

Ограничения посредством свойства pool.importance

Свойство pool.importance описывает относительную важность пула в соответствии с определением, заданным администратором.

Целевые показатели конфигурации

Целевые показатели задаются аналогично ограничениям. Полный перечень целевых показателей представлен в Таблица 12–1.

Существуют две категории целевых показателей.

Показатели, зависящие от рабочей нагрузки

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

Показатели, не зависящие от рабочей нагрузки

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

Можно определить три типа целевых показателей.

Имя 

Допустимые элементы 

Знаки операций 

Значения 

wt-load

system

нет 

нет 

locality

pset

нет 

loose | tight | none

utilization

pset

< > ~

0100%

Целевые показатели хранятся в строках свойств в конфигурации libpool. Используются следующие имена свойств:

Для целевых показателей используется следующий синтаксис:

Ко всем целевым показателям можно присоединить дополнительный префикс важности. Важность используется в качестве множителя для целевого показателя и, таким образом, повышает значимость вклада этого показателя в функцию анализа. Диапазон допустимых значений – от 0 до INT64_MAX (9223372036854775807). Если не указано иное, используется значение важности по умолчанию, равное 1.

Некоторые типы элементов поддерживают несколько типов целевых показателей. Примером такого элемента может служить pset. Для подобных элементов можно задавать несколько типов целевых показателей. Можно также определить несколько показателей использования для одного элемента pset.

См. примеры использования в Определение целевых показателей конфигурации.

Целевой показатель wt-load

Целевой показатель wt-load отдает предпочтение конфигурациям, в которых распределение ресурсов сопоставляется с использованием ресурсов. В случае активности этого целевого показателя набору ресурсов, использующему больше ресурсов, выделяется больше ресурсов. Название wt-load расшифровывается как взвешенная нагрузка.

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

Целевой показатель locality

Целевой показатель locality влияет на воздействие, оказываемое локальностью, которая определяется по данным группы местоположений (lgroup), на выбранную конфигурацию. Локальность также можно определить как задержку. Группа lgroup описывает ресурсы памяти и ЦП. Группа lgroup используется в Solaris для определения расстояния между ресурсами в единицах времени. Для получения дополнительной информации о выделении группы местоположения см. раздел Locality Groups Overview в Programming Interfaces Guide.

Этому целевому показателю может соответствовать одно из трех значений:

tight

В данном случае предпочтение оказывается конфигурациям, обеспечивающим максимальную локальность ресурсов.

loose

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

none

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

Как правило, для целевого показателя locality следует устанавливать значение tight. Однако в целях максимизации полосы пропускания памяти или минимизации воздействия операций DR на набор ресурсов для этого показателя можно установить значение loose или оставить значение по умолчанию none.

Целевой показатель utilization

Целевой показатель utilization отдает предпочтение конфигурациям, в которых ресурсы распределяются по разделам, не соответствующим указанным целевым показателям по степени использования.

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

<

Знак операции "меньше чем" указывает, что данное значение соответствует максимальному целевому значению.

>

Знак операции "больше чем" указывает, что данное значение соответствует минимальному целевому значению.

~

Знак операции "about" означает, что данное значение представляет собой целевое значение, для которого возможны некоторые колебания.

Для набора процессоров (pset) можно задать только один показатель "utilization" со знаком операции каждого типа.

Совместное использование знаков операций < и > позволяет задать диапазон. Значения проверяются на допустимость во избежание их перекрывания.

Пример целевых показателей конфигурации

В следующем примере демону poold необходимо оценить следующие целевые показатели набора процессоров:


Пример 12–1 Пример целевых показателей poold

pset.poold.objectives "utilization > 30; utilization < 80; locality tight"


Дополнительные примеры использования приведены в Определение целевых показателей конфигурации.

Свойства poold

Существуют четыре категории свойств:

Таблица 12–1 Определенные имена свойств

Имя свойства 

Тип 

Категория 

Описание 

system.poold.log-level

string 

Конфигурация 

уровень журналирования; 

system.poold.log-location

string 

Конфигурация 

место журналирования. 

system.poold.monitor-interval

uint64 

Конфигурация 

Интервал выборки для наблюдения. 

system.poold.history-file

string 

Конфигурация 

Местоположение истории принятых решений. 

pset.max

uint64 

Ограничение 

Максимальное количество процессоров в данном наборе процессоров. 

pset.min

uint64 

Ограничение 

Минимальное количество процессоров в этом наборе процессоров. 

cpu.pinned

bool 

Ограничение 

Процессоры, прикрепленные к данному набору процессоров. 

system.poold.objectives

string 

Целевой показатель 

Форматированная строка, следующая после синтаксиса выражения целевого показателя poold

pset.poold.objectives

string 

Целевой показатель 

Форматированная строка, следующая после синтаксиса выражения poold

pool.importance

int64 

Параметр целевого показателя 

Важность, заданная пользователем.