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

Глава 1 Введение в диспетчер ресурсов Solaris 10

Функциональные возможности управления ресурсами являются компонентом среды SolarisTM Container. Управление ресурсами позволяет регулировать использование доступных системных ресурсов приложениями. Имеются следующие возможности:

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

Обзор управления ресурсами

Современные вычислительные среды должны гибко реагировать на изменчивые рабочие нагрузки, создаваемые в системе разнообразными приложениями. Рабочая нагрузка – это совокупность всех процессов приложения или группы приложений. Если функции управления ресурсами не используются, операционная система Solaris реагирует на запросы рабочих нагрузок путем динамической адаптации к новым запросам приложений. Эта стандартная реакция обычно предоставляет всем приложениям, работающим в системе, равный доступ к ресурсам. Функции управления ресурсами Solaris позволяют реализовать дифференцированный подход к рабочим нагрузкам. Имеются следующие возможности:

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

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

Реализация системной конфигурации, использующей средства управления ресурсами, может служить нескольким целям. Имеются следующие возможности:

При планировании конфигурации с управлением ресурсами необходимо учесть следующие ключевые аспекты:

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

Эффективное управление ресурсами реализуется в системе Solaris благодаря механизмам управления, механизмам уведомления и механизмам наблюдения. Многие из этих возможностей предоставляются через расширения существующих механизмов, например файловой системы proc(4), наборов процессоров и классов планирования. Другие возможности относятся исключительно к управлению ресурсами. Описание этих возможностей приводится в последующих главах.

Классификация ресурсов

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

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

Как правило, управление ресурсами на основе планировщика применяется к ресурсам, неявно запрашиваемым приложением. Например, для продолжения выполнения приложение неявно запрашивает дополнительное процессорное время. Для записи данных в сетевой сокет приложение неявно запрашивает полосу пропускания. На совокупное потребление неявно запрашиваемого ресурса можно наложить ограничения.

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

Механизмы контроля в управлении ресурсами

В операционной системе Solaris доступны три типа механизмов управления – ограничения, планирование и распределение.

Механизмы ограничений

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

Использование ограничений ведет к усложнению среды с точки зрения приложений. Взаимосвязь между приложением и системой может измениться вплоть до полной невозможности дальнейшего функционирования приложения. Один из подходов, способных смягчить этот риск, состоит в постепенном сужении ограничений для приложений с неизвестным поведением в отношении ресурсов. Механизм ограничения обеспечивается функцией элементов управления ресурсами, рассматриваемой в Глава 6Элементы управления ресурсами (обзор). Более новые приложения могут создаваться с учетом соответствующих ограничений по ресурсам, однако реализация данной возможности зависит от авторов приложения.

Механизмы планирования

Под планированием понимается формирование последовательности принимаемых решений по распределению ресурсов с определенными интервалами. Решения принимаются на основании предсказуемого алгоритма. Если приложение не потребляет выделенные ему ресурсы, эти ресурсы остаются доступными для других приложений. Управление ресурсами на основе планирования позволяет полностью использовать конфигурацию с неполным распределением, обеспечивая при этом управляемость приложений в сценарии с полным или чрезмерным распределением. Интерпретация термина "управляемость" зависит от лежащего в основе алгоритма. В некоторых случаях алгоритм планирования может гарантировать определенный уровень доступности ресурса для всех приложений. Доступом приложений к ресурсам ЦП управляет настраиваемый планировщик долевого распределения (FSS), описанный в Глава 8Планировщик долевого распределения (обзор).

Механизмы распределения

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

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

Настройка управления ресурсами

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

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

Взаимодействие с зонами Solaris

Для дальнейшего совершенствования прикладной среды функции управления ресурсами можно использовать совместно с зонами Solaris. Взаимодействие между этими функциями и зонами описано в соответствующих разделах настоящего руководства.

Рекомендации по использованию управления ресурсами

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

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

Консолидация серверов

Управление ресурсами в первую очередь должно применяться для сред, в которых ряд приложений консолидируется на одном сервере.

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

При необходимости предоставления интернет- и прикладных сервисов управление ресурсами может обеспечить следующие возможности:

Поддержка большого или дифференцированного коллектива пользователей

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

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

Управление ресурсами также подходит для поддержки систем на базе "тонких клиентов". Эти платформы предоставляют консолям, не поддерживающим состояние, кадровые буферы и устройства ввода, например смарт-карты. Фактические вычисления выполняются на общем сервере, в результате чего реализуется среда с разделением времени. Функции управления ресурсами могут применяться для изолирования пользователей на сервере. В таком случае пользователь, генерирующий избыточную нагрузку, не сможет монополизировать аппаратные ресурсы и существенно повлиять на других пользователей, работающих в системе.

Настройка управления ресурсами (карта задач)

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

Задача 

Описание 

Инструкции 

Идентификация рабочих нагрузок в системе и их категоризация по проектам 

Создание записей проектов в файле /etc/project, в карте NIS или в службе каталогов LDAP.

База данных project

Расположение рабочих нагрузок в системе по приоритетам 

Определение важнейших приложений. Эти рабочие нагрузки могут иметь более высокий приоритет при доступе к ресурсам. 

См. цели обслуживания пользователей. 

Наблюдение за работой системы в реальном времени 

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

См. справочные страницы Наблюдение на уровне системы и cpustat(1M), iostat(1M), mpstat(1M), prstat(1M), sar(1) и vmstat(1M)

Внесение временных изменений в рабочие нагрузки, выполняющиеся в системе 

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

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

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

Каждая запись проекта в файле /etc/project или в базе данных проекта службы имен может содержать один или несколько элементов управления ресурсами или атрибутов. Элементы управления ресурсами позволяют ограничить задачи и процессы, присоединенные к данному проекту. С каждым пороговым значением, заданным для элемента управления ресурсами, можно связать одно или несколько действий, выполняемых при достижении этого значения.

Элементы управления ресурсами могут настраиваться через интерфейс командной строки. Некоторые параметры конфигурации также можно настроить с помощью Solaris Management Console. 

См. База данных project, Формат локального файла /etc/project, Доступные элементы управления ресурсами, Глобальные и локальные действия со значениями элементов управления ресурсами и Глава 8Планировщик долевого распределения (обзор)

Установка верхнего предела потребления ресурса физической памяти наборами процессов, присоединенных к проекту 

Демон ограниченного выделения ресурсов реализует ограничение по физической памяти, определенное для атрибута rcap.max-rss проекта в файле /etc/project.

База данных project и Глава 10Управление физической памятью с помощью демона ограниченного выделения ресурсов (обзор)

Создание пулов ресурсов 

Пулы ресурсов предоставляют способ разделения системных ресурсов, например процессоров, и поддержки этих разделов при перезагрузке. К каждой записи в файле project.pool можно добавить один атрибут /etc/project.

База данных project и Глава 12Пулы ресурсов (обзор)

Назначение планировщика долевого распределения (FSS) системным планировщиком по умолчанию 

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

См. Настройка FSS и справочную страницу dispadmin(1M)

Активация расширенного учета для наблюдения и регистрации потребления ресурсов для отдельных задач или процессов 

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

См. Активация расширенного учета для процессов, задач и потоков и справочную страницу acctadm(1M)

(Дополнительно) Если в конфигурацию требуется внести дополнительные изменения, значения можно изменить из командной строки. Изменение значений может осуществляться во время работы задачи или процесса. 

Изменения существующих задач могут применяться на временной основе без перезапуска проекта. Сначала следует добиться достаточной производительности путем установки требуемых значений. Затем следует обновить текущие значения в файле /etc/project или в базе данных проекта службы имен.

См. Временное обновление значений элементов управления ресурсами в работающей системе и справочные страницы rctladm(1M) и prctl(1)

(Дополнительно) Получение данных расширенного учета 

Регистрация записей расширенного учета для активных процессов и задач. Полученные файлы можно использовать в целях планирования, гибкого управления ресурсами и биллинга. Существует также интерфейс Perl (Practical Extraction and Report Language) для libexacct, позволяющий разрабатывать собственные сценарии для создания отчетов и извлечения данных.

См. справочную страницу wracct(1M) и Интерфейс Perl к libexacct