В этой главе рассматриваются следующие функциональные возможности:
пулы ресурсов, используемые для распределения ресурсов компьютера;
динамические пулы ресурсов (DRP), используемые для динамического регулирования распределения ресурсов каждого пула в соответствии с общесистемными целями.
Начиная с Solaris 10 11/06, пулы ресурсов и динамические пулы ресурсов являются службами в механизме управления службами Solaris (SMF). Каждая из этих служб включается отдельно.
В этой главе рассматриваются следующие темы:
Включение и выключение пулов ресурсов и динамических пулов ресурсов
Наблюдение за механизмом пулов и степени использования ресурсов командой poolstat
См. процедуры использования этих функциональных возможностей в Глава 13Создание и администрирование пулов ресурсов (задачи).
Solaris 10: Пулы ресурсов теперь обеспечивают механизм регулирования распределения ресурсов каждого пула в ответ на системные события и на изменение нагрузки приложений. Динамические пулы ресурсов позволяют упростить и сократить количество решений, которые должны приниматься администратором. Регулирование проводится автоматически, причем сохраняются целевые показатели производительности системы, установленные администратором.
Теперь командой projmod можно задать значение атрибута project.pool в файле /etc/project.
Полный список новых функций Solaris 10 и описание версий Solaris приведены в Solaris 10 What’s New.
Solaris 10 11/06: Пулы ресурсов и динамические пулы ресурсов теперь являются службами SMF.
Пулы ресурсов позволяют разделить рабочие нагрузки и исключить взаимоисключающее потребление определенных ресурсов рабочими нагрузками. Подобное резервирование ресурсов позволяет достигнуть предсказуемой производительности в системах со смешанными рабочими нагрузками.
Пулы ресурсов обеспечивают сохраняемый механизм для настройки наборов процессоров (pset) и, дополнительно, для назначения класса планирования.
Пул можно представить себе как отдельный комплект разнообразных наборов ресурсов, доступных в системе. Создаваемые пулы могут соответствовать различным видам возможных комбинаций ресурсов:
pool1: pset_default |
pool2: pset1 |
pool3: pset1, pool.scheduler="FSS" |
Группирование разделов в пулы позволяет получить метку-манипулятор для связывания с отмеченными рабочими нагрузками. С каждой записью проекта в файле /etc/project может быть связан один пул, указываемый с помощью атрибута project.pool.
При включенных пулах базовая конфигурация формируется из пула по умолчанию и набора процессоров по умолчанию. В конфигурации можно создавать и добавлять дополнительные пулы и наборы процессоров, определяемые пользователем. ЦП может принадлежать только к одному набору процессоров. Пулы и наборы процессоров, определяемые пользователем, можно удалять. Пул по умолчанию и набор процессоров по умолчанию удалить невозможно.
Свойство pool.default пула по умолчанию имеет значение true. Свойство pset.default набора процессоров по умолчанию имеет значение true. Таким образом обеспечивается возможность определения пула и набора процессоров по умолчанию даже в случае изменения их имен.
Механизм пулов, определяемых пользователем, предназначен в основном для использования на крупных машинах с количеством ЦП более четырех. Однако эта функциональная возможность может быть реализована и в небольших системах. В таких системах можно создать пулы, совместно использующие некритические разделы ресурсов. Эти пулы разделяются только по критическим ресурсам.
Динамические пулы ресурсов обеспечивают механизм динамического регулирования распределения ресурсов каждого пула в ответ на системные события и изменение нагрузки приложений. Динамические пулы ресурсов позволяют упростить и сократить количество решений, которые должны приниматься администратором. Регулирование проводится автоматически, причем сохраняются целевые показатели производительности системы, установленные администратором. Изменения, вносимые в конфигурацию, заносятся в журнал. Эти функции в основном реализуются через контроллер ресурсов poold – системный демон, который всегда должен быть активен при работе с динамическим распределением ресурсов. Демон poold периодически исследует нагрузку на систему и определяет, требуется ли вмешательство администратора для обеспечения оптимальной производительности системы в отношении потребления ресурсов. Конфигурация poold содержится в конфигурации libpool. Для получения дополнительной информации о poold см. справочную страницу poold(1M).
Информацию по включению и выключению пулов ресурсов и динамических пулов ресурсов приведены в Включение и отключение механизма пулов.
Solaris 10 8/07: В качестве альтернативы связыванию зоны с настроенным пулом ресурсов можно создать командой zonecfg временный пул, действующий во время работы зоны. Для получения дополнительной информации см. Solaris 10 8/07: Ресурс dedicated-cpu.
В системе с включенными зонами можно связать неглобальную зону с одним пулом ресурсов, однако пул не обязательно должен быть назначен определенной зоне. Кроме того, отдельные процессы в неглобальных зонах невозможно связать с другим пулом командой poolbind из глобальной зоны. Информацию по связыванию неглобальной зоны с пулом приведены в Настройка, проверка и сохранение параметров зоны.
Следует отметить, что если для пула задан класс планирования и с этим пулом связывается неглобальная зона, данный класс планирования по умолчанию будет использоваться в зоне.
Если используются динамические пулы ресурсов, область действия выполняющегося экземпляра poold ограничена глобальной зоной.
Средство poolstat, выполняемая в неглобальной зоне, выводит информацию только о том пуле, который связан с зоной. Команда pooladm, запущенная без аргументов в неглобальной зоне, отображает информацию только о пуле, связанном с зоной.
Для получения информации о командах работы с пулами ресурсов см. Команды, используемые с механизмом пулов ресурсов.
Пулы ресурсов обеспечивают универсальный механизм, который применим ко многим случаям администрирования.
При помощи функциональных возможностей пулов сервер можно разделить на два пула. Один пул используется для сеансов регистрации и интерактивной работы пользователей с разделением времени. Другой пул предназначается для заданий, полученных через пакетную систему.
Ресурсы для интерактивных приложений можно разделить в соответствии с требованиями этих приложений.
Формирование ожиданий пользователей.
Сначала можно развернуть систему, выполняющую лишь часть услуг, ожидаемых от нее в конечном итоге. Если при вводе машины в эксплуатацию механизмы управления ресурсами на основе резервирования не реализованы, пользователи могут столкнуться с трудностями.
Рассмотрим, например, оптимизацию использования процессоров планировщиком долевого распределения. Время отклика для компьютера, на котором выполняется только одно приложение, может быть обманчиво коротким. При нескольких загруженных приложениях добиться такого времени отклика для пользователей не удастся. Использование отдельных пулов для каждого приложения позволяет ограничить максимальное количество процессоров, доступных каждому приложению, на период до развертывания всех приложений.
Сегментирование сервера, поддерживающего большое количество пользователей. Разделение сервера обеспечивает механизм изоляции, позволяющий достигнуть более предсказуемого отклика для каждого пользователя.
Разделение пользователей на группы, связанные с разными пулами, и применение планировщика долевого распределения (FSS) позволяет отрегулировать распределение процессоров с учетом требований приоритетных групп пользователей. Это назначение может основываться на роли пользователя, стратегиях гибкого управления ресурсами на основе данных учета и т.д.
Пулы ресурсов можно использовать для адаптации к меняющимся потребностям.
Потребности рабочих нагрузок могут испытывать предсказуемые изменения в течение длительных периодов времени, таких как месячные, квартальные или годичные циклы. Если система подвержена подобным сдвигам, можно организовать поочередную смену нескольких конфигураций ресурсов вызовом команды pooladm из задания cron. См. Архитектура пулов ресурсов.
Пул реального времени создается с использованием планировщика RT и соответствующих ресурсов процессора.
Реализация заданных целевых показателей системы.
Функция автоматизированного демона пулов используется для выяснения доступности ресурсов и наблюдения за рабочими нагрузками с целью определения момента, в который заданные целевые показатели перестают быть достижимыми. В подобном случае демон может принять меры к исправлению ситуации или оставить соответствующую запись в журнале.
В файле конфигурации /etc/pooladm.conf описывается статическая настройка пулов. Статическая конфигурация – это представление требуемого администратором способа настройки системы в отношении функциональных возможностей пулов ресурсов. Допускается альтернативное имя файла.
Если архитектура пулов ресурсов реализуется с помощью механизма управления обслуживанием (SMF) или командой pooladm - e, то при наличии файла /etc/pooladm.conf к системе применяется содержащаяся в нем конфигурация.
Информация о расположении ресурсов в структуре пулов ресурсов хранится в ядре. Эта информация называется динамической конфигурацией, которая соответствует функциональным возможностям пулов ресурсов в определенной системе на определенный момент времени. Динамическую конфигурацию можно просмотреть при помощи команды pooladm. Следует отметить, что порядок отображения свойств для пулов и наборов ресурсов может различаться. Динамическую конфигурацию можно изменить следующими способами:
косвенно – путем применения файла статической конфигурации;
непосредственно – командой poolcfg с параметром -d.
Может существовать несколько файлов статической конфигурации пулов, которые активируются в разных случаях. Переключение между несколькими конфигурациями пулов осуществляется путем вызова команды pooladm из задания cron. Для получения дополнительной информации об утилите cron см. справочную страницу cron(1M).
По умолчанию архитектура пулов ресурсов не активна. Для создания или изменения динамической конфигурации пулы ресурсов необходимо активировать. Даже если структура пулов ресурсов отключена, управление файлами статической конфигурации можно осуществлять с помощью команд poolcfg и libpool. Создать файлы статической конфигурации при неактивном механизме пулов невозможно. Для получения дополнительной информации о файле конфигурации см. Создание конфигураций пулов.
Команды, предназначенные для использования с пулами ресурсов и системным демоном poold, описаны на следующих справочных страницах:
Все конфигурации пулов ресурсов, включая динамическую конфигурацию, могут содержать следующие элементы.
Свойства, воздействующие на общее поведение системы.
Определение пула ресурсов.
Определение набора процессоров.
Определение процессора.
Все эти элементы обладают свойствами, которыми можно управлять в целях изменения состояния и поведения архитектуры пулов ресурсов. Например, свойство пула pool.importance указывает относительную важность данного пула. Это свойство используется для разрешения потенциальных конфликтов из-за ресурсов. Для получения дополнительной информации см. libpool(3LIB).
Механизм пулов поддерживает именованные типизированные свойства, которыми можно снабдить пул, ресурс или компонент. Администраторы могут сохранять дополнительные свойства для различных элементов пула. При этом используется пространство имен свойств, подобное атрибутам проекта.
Например, следующий комментарий означает, что данный набор процессоров (pset) связан с базой данных Datatree.
Datatree,pset.dbname=warehouse
Для получения дополнительной информации о типах свойств см. Свойства poold.
Некоторые специальные свойства зарезервированы для внутреннего использования, и их невозможно установить или удалить. Для получения дополнительной информации см. справочную страницу libpool(3LIB).
Пулы, определяемые пользователем, реализуются в системе одним из следующих способов.
При загрузке программного обеспечения Solaris сценарий init проверяет, существует ли файл /etc/pooladm.conf. Если этот файл существует и механизм пулов активирован, вызывается pooladm, который определяет эту конфигурацию пулов как активную. Создается динамическая конфигурация, отражающая организацию согласно /etc/pooladm.conf, и ресурсы компьютера распределяются соответствующим образом.
Во время работы системы Solaris конфигурацию пулов можно либо активировать, если она еще не активна, либо изменить командой pooladm. По умолчанию команда pooladm работает с файлом /etc/pooladm.conf. Однако при необходимости можно указать альтернативное расположение и имя файла, который должен использоваться для обновления конфигурации пулов.
Для получения информации по включению и отключению пулов ресурсов см. Включение и отключение механизма пулов. При наличии используемых в данный момент пулов или ресурсов, определяемых пользователем, отключить механизм пулов невозможно.
Для настройки пулов ресурсов необходимы полномочия суперпользователя или профиль управления процессами (Process Management) в списке профилей. Профиль управления процессами входит в роль системного администратора (System Administrator).
Вместе с механизмом динамических пулов ресурсов запускается контроллер ресурсов poold.
Атрибут project.pool добавляется к записи проекта в файле /etc/project для связывания с этой записью отдельного пула. Новые рабочие нагрузки, запускаемые в проекте, привязываются к соответствующему пулу. Для получения дополнительной информации см. Глава 2Проекты и задачи (обзор).
Например, команду projmod можно использовать для установки атрибута project.pool для проекта sales в файле /etc/project:
# projmod -a -K project.pool=mypool sales |
Динамическая перенастройка (DR) позволяет перенастраивать аппаратные средства во время работы системы. Операция DR может приводить к увеличению, уменьшению или сохранению текущего состояния для определенного типа ресурса. Поскольку DR может воздействовать на доступные объемы ресурсов, в этих операциях должен применяться механизм управления пулами. При инициировании операции DR конфигурация проверяется на допустимость с точки зрения архитектуры пулов.
Если операция DR может быть выполнена без нарушения допустимости текущей конфигурации пулов, обновляется частный файл конфигурации. Недопустимая конфигурация – это конфигурация, не поддерживаемая доступными ресурсами.
Если операция DR может привести к тому, что конфигурация пулов станет недопустимой, эта операция завершается неуспешно, и в журнал сообщений записывается соответствующее уведомление. Для принудительного перехода на новую конфигурацию необходимо использовать параметр принудительного применения DR. При этом конфигурация пулов изменяется в соответствии с новыми параметрами ресурсов. Для получения информации относительно процесса динамической перенастройки см. руководство пользователя по динамической перенастройке для аппаратных средств Sun.
При использовании динамических пулов ресурсов следует помнить о возможности вывода раздела из-под контроля активного демона poold. Для получения дополнительной информации см. Определение дефицита ресурсов.
Описание создаваемых в системе пулов содержится в файле конфигурации. В этом файле описываются настраиваемые элементы.
system
pool
pset
cpu
Для получения дополнительной информации о настраиваемых элементах см. poolcfg(1M).
При включенных пулах структурированный файл /etc/pooladm.conf создается одним из двух способов.
Командой pooladm с параметром - s, которая выполняет процедуру обнаружения ресурсов в текущей системе и помещает результаты в файл конфигурации.
Этот метод является предпочтительным. Записываются все активные ресурсы и компоненты системы, которыми может манипулировать механизм пулов. Ресурсы включают в себя существующие конфигурации набора процессоров. Затем эту конфигурацию можно изменить и, при необходимости, переименовать наборы процессоров или создать дополнительные пулы.
Также можно создать новую конфигурацию пулов командой poolcfg с параметром - c и подкомандами discover или create system имя.
Эти параметры сохранены для обеспечения обратной совместимости с предыдущей версией.
Для изменения файла /etc/pooladm.conf используются команды poolcfg или libpool. Этот файл не следует редактировать непосредственно.
Типами процессорных ресурсов в динамической конфигурации можно управлять непосредственно с помощью команды poolcfg с параметром -d. Для передачи ресурсов используются два метода:
общий запрос на передачу всех доступных обнаруженных ресурсов между наборами;
перенос ресурсов с определенными идентификаторами в целевой набор. Следует отметить, что системные идентификаторы, связанные с ресурсами, могут изменяться при изменении конфигурации ресурсов или после перезагрузки системы.
См. пример в Перенос ресурсов.
Следует отметить, что перенос ресурсов может вызвать выполнение действий демоном poold. Для получения дополнительной информации см. Обзор poold.
Контроллер ресурсов пулов poold служит для поддержания назначенных целевых показателей производительности системы на основе заданных параметров или имеющихся статистических данных. При необходимости динамического распределения ресурсов этот системный демон всегда должен быть активным.
Контроллер ресурсов poold определяет доступные ресурсы и ведет наблюдение за рабочими нагрузками, что позволяет определить моменты, в которые заданные целевые показатели использования системы перестают быть достижимыми. В этом случае poold проверяет альтернативные конфигурации с точки зрения возможности достижения этих показателей и принимает меры к исправлению ситуации. Если возможно, ресурсы перенастраиваются для достижения поставленных целей. Если это невозможно, в системный журнал заносится информация о невозможности достижения указанных пользователем целевых показателей. После перенастройки демон продолжает наблюдение за целевыми показателями рабочих нагрузок.
poold сохраняет и может анализировать историю принятых решений. История принятых решений используется во избежание перенастроек, не приводивших в прошлом к исправлению ситуации.
Следует отметить, что в случае изменения целевых показателей рабочих нагрузок или доступных в системе ресурсов перенастройка также может инициироваться асинхронно.
Управление службой DRP осуществляется механизмом управления службами (SMF) под идентификатором svc:/system/pools/dynamic.
Административные действия в отношении этой службы, например включение, выключение или запрос перезапуска, можно выполнять командой svcadm. Запрос состояния службы можно выполнить с помощью команды svcs Для получения дополнительной информации см. справочные страницы svcs(1) и svcadm(1M).
Интерфейс SMF является рекомендуемым методом управления DRP, однако для обратной совместимости могут использоваться методы, перечисленные ниже.
Если динамическое распределение ресурсов не требуется, poold можно остановить сигналом SIGQUIT или SIGTERM. Оба сигнала приводят к корректному завершению работы poold.
Хотя команда poold автоматически обнаруживает изменения конфигурации ресурса или пулов, можно также принудительно выполнить повторную настройку с помощью сигнала SIGHUP.
При изменении конфигурации контроллер ресурсов poold действует в соответствии с предоставленными ему директивами. Они указываются в виде ряда ограничений и целевых показателей. Эти спецификации используются poold для определения относительной целесообразности вариантов настройки по сравнению с существующей конфигурацией. Затем poold изменяет распределение ресурсов текущей конфигурации и генерирует новые конфигурации-кандидаты.
Ограничения влияют на диапазон возможных конфигураций, устраняя ряд потенциальных изменений, которые можно было бы внести в конфигурацию. Могут применяться следующие ограничения, указываемые в конфигурации libpool:
минимальное и максимальное выделение ЦП;
прикрепленные компоненты, которые запрещается исключать из набора.
Для получения дополнительной информации о свойствах пулов см. справочную страницу libpool(3LIB) и Свойства пулов.
Эти два свойства ограничивают минимальное и максимальное количество процессоров, которые можно выделить в набор процессоров. Дополнительную информацию об этих свойствах приведены в Таблица 12–1.
Ресурсы из раздела ресурсов доступны для выделения другим разделам ресурсов в том же экземпляре Solaris в рамках этих ограничений. Доступ к ресурсу обеспечивается путем привязки к пулу, связанному с набором ресурсов. Привязка выполняется при регистрации или вручную администратором с полномочиями PRIV_SYS_RES_CONFIG.
Свойство cpu-pinned указывает, что определенный процессор не должен покидать набор процессоров, в котором он расположен, в результате действий DPR. Это свойство libpool можно использовать для максимизации использования кэша определенным приложением, выполняющимся внутри набора процессоров.
Дополнительную информацию об этом свойстве приведены в Таблица 12–1.
Свойство pool.importance описывает относительную важность пула в соответствии с определением, заданным администратором.
Целевые показатели задаются аналогично ограничениям. Полный перечень целевых показателей представлен в Таблица 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"
Дополнительные примеры использования приведены в Определение целевых показателей конфигурации.
Существуют четыре категории свойств:
Конфигурация
Ограничение
Целевой показатель
Параметр целевого показателя
Имя свойства |
Тип |
Категория |
Описание |
---|---|---|---|
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 |
Параметр целевого показателя |
Важность, заданная пользователем. |
Настройке подлежат следующие аспекты поведения демона:
интервал наблюдения;
уровень журналирования;
место журналирования.
Эти параметры задаются в конфигурации пулов. Уровнем журналирования также можно управлять из командной строки вызовом демона poold.
Значение свойства system.poold.monitor-interval указывается в миллисекундах.
Журналирование позволяет регистрировать информацию трех категорий. Это следующие категории:
Конфигурация
Наблюдение
Оптимизация
Имя свойства system.poold.log-level используется для указания параметра журналирования. Если это свойство не указано, используется уровень журналирования по умолчанию – NOTICE. Уровни параметра формируют иерархию. При уровне журналирования DEBUG демон poold регистрирует все сообщения. Уровень INFO соответствует среднему уровню информации, удобному для большинства администраторов.
Для указания уровня информации, записываемой в журнал, можно воспользоваться командой poold с параметром -l в командной строке.
Доступны следующие параметры:
ALERT
CRIT
ERR
WARNING
NOTICE
INFO
DEBUG
Уровни параметра непосредственно соответствуют их эквивалентам syslog. Для получения дополнительной информации об использовании syslog см. Место журналирования.
Для получения дополнительной информации о настройке журналирования poold см. Настройки уровня журналирования poold.
Возможна генерация сообщений следующих типов:
Проблемы при доступе к конфигурации libpool или иной непредвиденный отказ механизма libpool. Подобные проблемы вызывают завершение работы демона и требуют немедленного внимания администратора.
Проблемы вследствие непредвиденных отказов. Подобные проблемы вызывают завершение работы демона и требуют немедленного внимания администратора.
Проблемы с указанными пользователем параметрами, управляющими работой демона, например, неразрешимые конфликты целей степени использования для набора ресурсов. Для решения подобных проблем требуется административное вмешательство. Демон poold пытается принять меры к исправлению ситуации путем игнорирования конфликтующих целевых показателей, однако некоторые ошибки способны привести к завершению работы демона.
Предупреждения, связанные с установкой параметров конфигурации, которые, будучи технически корректными, могут не подходить для данной среды выполнения. В качестве примера можно привести маркировку всех процессорных ресурсов как прикрепленных, что приводит к невозможности перемещения ресурсов ЦП между наборами процессоров демоном poold.
Сообщения, содержащие подробную информацию, требуемую при отладке конфигурации. Эта информация, как правило, не используется администраторами.
Возможна генерация сообщений следующих типов:
Проблемы из-за непредвиденных отказов наблюдения. Подобные проблемы вызывают завершение работы демона и требуют немедленного внимания администратора.
Проблемы из-за непредвиденных ошибок наблюдения. Для исправления подобных ошибок может потребоваться административное вмешательство.
Сообщения о достижении границ, задаваемых элементами управления ресурсами.
Сообщения о статистике использования ресурсов.
Сообщения, содержащие подробную информацию, требуемую при отладке наблюдения. Эта информация, как правило, не используется администраторами.
Возможна генерация сообщений следующих типов:
Сообщения о проблемах при принятии оптимальных решений. В качестве примеров можно привести наборы ресурсов, слишком узко ограниченные минимальными и максимальными значениями или числом прикрепленных компонентов.
Также могут выводиться сообщения о проблемах, возникающих при выполнении оптимального перераспределения из-за непредвиденных ограничений. В качестве примеров можно привести удаление последнего процессора из набора процессоров, содержащего связанного потребителя ресурса.
Сообщения о пригодных конфигурациях или о конфигурациях, которые не используются вследствие выявленных при помощи истории принятых решений противоречий.
Возможен вывод сообщений о рассматриваемых альтернативных конфигурациях.
Сообщения, содержащие подробную информацию, требуемую для отладки оптимизации. Эта информация, как правило, не используется администраторами.
Для указания местоположения для вывода в журнал демоном poold используется свойство system.poold.log-location. Для команд poold можно указать местоположение SYSLOG (см. syslog(3C)).
Если это свойство не указано, в качестве местоположения по умолчанию для журнального вывода poold используется /var/log/pool/poold.
При вызове poold из командной строки это свойство не используется. Журнальные записи выводятся в stderr вызывающего терминала.
Если активен демон poold, в файле logadm.conf содержится запись, позволяющая управлять файлом по умолчанию /var/log/pool/poold. Эта запись имеет следующий вид:
/var/log/pool/poold -N -s 512k
См. справочные страницы logadm(1M) и logadm.conf(4).
В этом разделе рассматривается процесс динамического выделения ресурсов демоном poold и влияющие на него факторы.
Доступными считаются все ресурсы, которые могут использоваться в области действия процесса poold. Область действия элемента управления – не шире, чем отдельный экземпляр Solaris.
В системе с включенными зонами области действия выполняющегося экземпляра poold ограничена глобальной зоной.
Все системные ресурсы, доступные для потребления приложениями, входят в пулы ресурсов.
В одиночном работающем экземпляре Solaris ресурсы одного типа, например процессор, должны быть распределены в один раздел. Для каждого типа ресурсов может существовать один или более разделов. В каждый раздел входит уникальный набор ресурсов.
Например, на машине с четырьмя процессорами и двумя наборами процессоров может применяться следующая схема настройки:
pset 0: 0 1
pset 1: 2 3
Где 0, 1, 2 и 3 после двоеточия соответствуют идентификаторам ЦП. Следует отметить, что в эти два набора процессоров входят все четыре ЦП.
В том же компьютере не может существовать следующая конфигурация:
pset 0: 0 1
pset 1: 1 2 3
Такая настройка невозможна, поскольку ЦП 1 может одновременно входить только в один pset.
Доступ к ресурсам из разделов, отличных от разделов, к которым они принадлежат, запрещается.
Демон poold выполняет процедуру обнаружения доступных ресурсов путем опроса активной конфигурации пулов для поиска разделов. Все ресурсы внутри всех разделов суммируются для определения общего объема доступных ресурсов по каждому контролируемому типу ресурсов.
Этот объем ресурсов выступает в качестве базового показателя, используемого демоном poold. Однако на этот показатель накладываются ограничения, ограничивающие гибкость poold в отношении распределения. Для получения информации о доступных ограничениях см. Ограничения в конфигурации.
Область действия управления poold определяется как набор доступных ресурсов, ответственность за распределение и контроль которых в первую очередь осуществляется демоном poold. Однако на конфигурацию могут влиять и другие механизмы, которым разрешено манипулирование ресурсами в этой области действия управления. Если раздел выходит из-под контроля во время работы poold, демон poold пытается восстановить управление посредством разумного манипулирования доступными ресурсами. Если poold не обнаруживает дополнительные ресурсы в своей области действия, в журнал заносится информация о дефиците ресурсов.
При работе демона poold самое большое время обычно затрачивается на наблюдение за использованием ресурсов в его области действия управления. Это наблюдение проводится для обеспечения соблюдения целевых показателей, зависящих от рабочих нагрузок.
Например, в случае наборов процессоров все измерения выполняются для всех процессоров в определенном наборе. Степень использования ресурсов позволяет определить пропорцию времени, в течение которого используется ресурс, по интервалу выборки. Степень использования ресурсов выражается в процентах от 0 до 100.
Для обнаружения приближающегося времени нарушения заданных для системы целевых показателей используются директивы, описанные в Ограничения и целевые показатели конфигураций. Эти целевые показатели непосредственно связаны с рабочей нагрузкой.
Раздел, не выполняющий заданные пользователем целевые показатели, представляет собой нарушение по элементу управления. Существуют два типа таких нарушений – синхронное и асинхронное.
Синхронное нарушение обнаруживается демоном в ходе наблюдения за рабочими нагрузки.
Асинхронное нарушение происходит независимо от действий демона по наблюдению.
Асинхронные нарушения вызываются следующими событиями:
добавление или удаление ресурсов из области действия управления;
перенастройка области действия управления;
перезапуск контроллера ресурсов poold.
Вклад целевых показателей, не связанных с рабочей нагрузкой, между выборками целевой функции полагается постоянным. Переоценка целевых показателей, не связанных с рабочей нагрузкой, выполняется только при инициировании повторного анализа вследствие одного из асинхронных нарушений.
При выявлении контроллером дефицита ресурсов для определенного потребителя сначала принимается решение о том, что повышение производительности может быть достигнуто путем увеличения объема ресурсов.
Рассматриваются и оцениваются альтернативные конфигурации, соответствующие целевым показателям, указанным в конфигурации для области действия управления.
Этот процесс со временем уточняется по мере наблюдения за результатами перемещения ресурсов, и оценивается отклик каждого раздела. Попытки перенастройки, которые в соответствии с историей принятых решений не способствовали достижению целевой функции в прошлом, исключаются. Для дальнейшего анализа действительности данных истории используется другая информация, например имена и количества процессов.
Если демон оказывается неспособен принять корректирующие меры, это состояние регистрируется в журнале. Для получения дополнительной информации см. Информация журналирования poold
Средство poolstat используется для текущего контроля степени использования ресурсов при активированном механизме пулов. Это средство выполняет итеративное исследование всех активных пулов и выдает статистический отчет, основанный на выбранном режиме вывода. Статистические данные poolstat позволяют определить, какие разделы ресурсов имеют наибольшую нагрузку. Эту статистику можно использовать в анализе для принятия решений о перераспределении ресурсов при недостатке ресурсов в системе.
Средство poolstat предоставляет параметры, которые могут использоваться для исследования конкретных пулов и вывода статистических отчетов по конкретным наборам ресурсов.
Если в системе реализованы зоны, и poolstat используется в неглобальной зоне, отображается информация о ресурсах, связанных с пулом зоны.
Для получения дополнительной информации о poolstat см. справочную страницу poolstat(1M). Для получения информации о задачах и использовании poolstat см. Вывод статистических отчетов по ресурсам, связанным с пулами, с помощью команды poolstat.
Если используется формат вывода по умолчанию, poolstat выводит строку заголовка, а затем по одной строке для каждого пула. Строка пула начинается с идентификатора и имени пула, после которых следует столбец статистических данных для набора процессоров, присоединенного к пулу. Наборы ресурсов, присоединенные к нескольким пулам, выводятся несколько раз, по одному разу на каждый пул.
Используются следующие заголовки столбцов:
Идентификатор пула.
Имя пула.
Идентификатор набора ресурсов.
Имя набора ресурсов.
Тип набора ресурсов.
Минимальный размер набора ресурсов.
Максимальный размер набора ресурсов.
Текущий размер набора ресурсов.
Мера текущего использования набора ресурсов.
Эта характеристика использования вычисляется как процент от степени использования набора ресурсов, умноженный на размер набора ресурсов. Если набор ресурсов перенастраивался в течение последнего интервала выборки, это значение может отсутствовать. В этом случае вместо значения отображается дефис (-).
Абсолютное представление нагрузки набора ресурсов.
Для получения дополнительной информации об этом свойстве см. справочную страницу libpool(3LIB).
Выходные данные poolstat можно настроить путем определения следующих элементов:
Порядок столбцов
Выводимые заголовки
Операции, выполняемые poolstat, могут быть настроены. Для отчета можно задать интервал выборки и указать количество повторений статистики.
Настройка интервалов для периодических операций, выполняемых poolstat. Все интервалы указываются в секундах.
Число повторений статистики. По умолчанию статистика poolstat выводится один раз.
Если значения интервал и число не указаны, данные статистики выводятся один раз. Если значение interval указано, а count не указано, то статистика выводится бесконечно.
Команды, указанные в следующей таблице, обеспечивают главный административный интерфейс для механизма пулов. Для получения информации по использованию этих команд в системе с установленными зонами см. Использование пулов ресурсов в зонах.
Ссылка на справочную страницу |
Описание |
---|---|
Включение или отключение механизма пулов. Активация определенной конфигурации или удаление текущей конфигурации с возвращением связанных ресурсов в их состояние по умолчанию. При запуске без параметров pooladm отображает текущую динамическую конфигурацию пулов. |
|
Активация привязки проектов, задач и процессов к пулу ресурсов вручную. |
|
Эта команда обеспечивает операции по конфигурированию для пулов и наборов. Конфигурации, создаваемые с помощью этого средства, активируются на целевом узле командой pooladm . При выполнении с аргументом подкоманды info с параметром - c по команде poolcfg отображается информация о статической конфигурации в /etc/pooladm.conf. Если указывается также аргумент имени файла, по этой команде отображается информация о статической конфигурации, содержащейся в именованном файле. Например, по команде poolcfg - c info /tmp/newconfig отображается информация о статической конфигурации в файле /tmp/newconfig . |
|
Системный демон пулов. Демон использует системные целевые показатели и наблюдаемую статистику для обеспечения соответствия целям по производительности, заданным администратором. Если корректирующие действия при отступлении от этих показателей оказываются неуспешными, poold заносит такое состояние в журнал. |
|
Вывод статистических данных по ресурсам, связанным с пулом. Эта команда служит для упрощения анализа производительности и вывода информации, используемой системными администраторами при распределении и перераспределении ресурсов. Можно задать параметры для исследования конкретных пулов и вывода статистики по конкретным наборам ресурсов. |
Библиотекой libpool предоставляется API (см. справочную страницуlibpool(3LIB)). Эта библиотека может использоваться программами для управления конфигурациями пулов.