Целевые показатели задаются аналогично ограничениям. Полный перечень целевых показателей представлен в Таблица 12–1.
Существуют две категории целевых показателей.
Целевой показатель, зависящий от рабочей нагрузки, изменяется в зависимости от характера рабочей нагрузки, выполняющейся в системе. Примером может служить целевой показатель utilization. Показатель степени использования для набора ресурсов изменяется в соответствии с характером активной в наборе рабочей нагрузки.
Целевой показатель, не зависящий от рабочей нагрузки, не изменяется в зависимости от характера рабочей нагрузки, выполняющейся в системе. Примером может служить целевой показатель ЦП locality. Оценочное значение локальности (locality) для набора ресурсов не изменяется в зависимости от характера активной в наборе рабочей нагрузки.
Можно определить три типа целевых показателей.
Имя |
Допустимые элементы |
Знаки операций |
Значения |
---|---|---|---|
wt-load |
system |
нет |
нет |
locality |
pset |
нет |
loose | tight | none |
utilization |
pset |
< > ~ |
0–100% |
Целевые показатели хранятся в строках свойств в конфигурации libpool. Используются следующие имена свойств:
system.poold.objectives
pset.poold.objectives
Для целевых показателей используется следующий синтаксис:
objectives = objective [; objective]*
objective = [n:] keyword [op] [value]
Ко всем целевым показателям можно присоединить дополнительный префикс важности. Важность используется в качестве множителя для целевого показателя и, таким образом, повышает значимость вклада этого показателя в функцию анализа. Диапазон допустимых значений – от 0 до INT64_MAX (9223372036854775807). Если не указано иное, используется значение важности по умолчанию, равное 1.
Некоторые типы элементов поддерживают несколько типов целевых показателей. Примером такого элемента может служить pset. Для подобных элементов можно задавать несколько типов целевых показателей. Можно также определить несколько показателей использования для одного элемента pset.
См. примеры использования в Определение целевых показателей конфигурации.
Целевой показатель wt-load отдает предпочтение конфигурациям, в которых распределение ресурсов сопоставляется с использованием ресурсов. В случае активности этого целевого показателя набору ресурсов, использующему больше ресурсов, выделяется больше ресурсов. Название wt-load расшифровывается как взвешенная нагрузка.
Этот целевой показатель следует использовать, если ограничения, установленные с помощью минимальных и максимальных значений свойств, удовлетворяют требованиям, и для демона необходимо обеспечить свободное манипулирование ресурсами в рамках этих ограничений.
Целевой показатель locality влияет на воздействие, оказываемое локальностью, которая определяется по данным группы местоположений (lgroup), на выбранную конфигурацию. Локальность также можно определить как задержку. Группа lgroup описывает ресурсы памяти и ЦП. Группа lgroup используется в Solaris для определения расстояния между ресурсами в единицах времени. Для получения дополнительной информации о выделении группы местоположения см. раздел Locality Groups Overview в Programming Interfaces Guide.
Этому целевому показателю может соответствовать одно из трех значений:
В данном случае предпочтение оказывается конфигурациям, обеспечивающим максимальную локальность ресурсов.
В этом варианте предпочтение оказывается конфигурациям, обеспечивающим минимальную локальность ресурсов.
При выборе данного значения локальность не влияет на предпочтительность конфигурации. Это значение задается для показателя locality по умолчанию.
Как правило, для целевого показателя locality следует устанавливать значение tight. Однако в целях максимизации полосы пропускания памяти или минимизации воздействия операций DR на набор ресурсов для этого показателя можно установить значение loose или оставить значение по умолчанию none.
Целевой показатель utilization отдает предпочтение конфигурациям, в которых ресурсы распределяются по разделам, не соответствующим указанным целевым показателям по степени использования.
Этот показатель задается с помощью знаков операций и значений. Для этого используются следующие знаки операций:
Знак операции "меньше чем" указывает, что данное значение соответствует максимальному целевому значению.
Знак операции "больше чем" указывает, что данное значение соответствует минимальному целевому значению.
Знак операции "about" означает, что данное значение представляет собой целевое значение, для которого возможны некоторые колебания.
Для набора процессоров (pset) можно задать только один показатель "utilization" со знаком операции каждого типа.
Если задан знак операции ~, ввести знаки операций < и > невозможно.
Если заданы знаки операций < и >, невозможным становится указание знака операции ~. Следует отметить, что настройки знаков операций < и > не могут противоречить друг другу.
Совместное использование знаков операций < и > позволяет задать диапазон. Значения проверяются на допустимость во избежание их перекрывания.
В следующем примере демону poold необходимо оценить следующие целевые показатели набора процессоров:
Показатель utilization должен иметь значение между 30 и 80 процентами.
Показатель locality для набора процессоров должен быть максимальным.
Для этих показателей устанавливается важность по умолчанию, равная 1.
pset.poold.objectives "utilization > 30; utilization < 80; locality tight"
Дополнительные примеры использования приведены в Определение целевых показателей конфигурации.