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

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

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

Solaris 10 8/07: Если в системе имеются работающие зоны, для регулирования потребления физической памяти в неглобальных зонах используется демон rcapd в глобальной зоне. См. Глава 18Планирование и настройка неглобальных зон (задачи).

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

См. процедуры использования функции rcapd в Глава 11Администрирование демона ограниченного выделения ресурсов (задачи).

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

Solaris 10: Теперь командой projmod можно задать значение атрибута rcap.max-rss в файле /etc/project.

Solaris 10 11/06: Добавлена информация относительно включения и выключения демона ограниченного выделения ресурсов в форме службы в рамках механизма управления службами Solaris (SMF).

Полный список новых функций Solaris 10 и описание версий Solaris приведены в документе Solaris 10 What’s New.

Вводная информация по демону ограниченного выделения ресурсов

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

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

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

Для получения информации о rcapdсм. справочную страницу rcapd(1M). Для получения информации о проектах и о базе данных project см. Глава 2Проекты и задачи (обзор) и справочную страницу project(4). Для получения информации об элементах управления ресурсами см. Глава 6Элементы управления ресурсами (обзор).

Принцип действия ограниченного выделения ресурсов

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

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

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

В отдельно взятый момент времени может выполняться только один экземпляр rcapd.

Атрибут ограничения использования физической памяти проектами

Для установки ограничения ресурса физической памяти проекта необходимо определить размер резидентного набора (RSS) путем добавления этого атрибута к записи базы данных project:

rcap.max-rss

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

Например, следующей строкой в файле /etc/project для проекта db задается ограничение RSS, равное 10 Гб.


db:100::db,root::rcap.max-rss=10737418240

Примечание –

Указанное значение может округляться до размера страницы.


Для установки атрибута rcap.max-rss в файле /etc/project можно использовать команду projmod:


# projmod -s -K rcap.max-rss=10GB db

После этого в файле /etc/project появляется следующая строка:


db:100::db,root::rcap.max-rss=10737418240

Настройка rcapd

Команду rcapadm можно использовать для настройки демона ограниченного выделения ресурсов. Имеются следующие возможности:

Для настройки демона необходимы полномочия суперпользователя или профиль управления процессами (Process Management) в списке профилей. Профиль управления процессами входит в роль управления процессами (Process Management) и в роль системного администратора (System Administrator).

Изменения конфигурации включаются в rcapd в соответствии с интервалом настройки (см. Интервалы операций rcapd) или по запросу, путем передачи сигнала SIGHUP (см. справочную страницу kill(1)).

Команда rcapadm без аргументов выводит текущее состояние демона ограниченного выделения ресурсов, если он настроен.

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

Использование демона ограниченного выделения ресурсов в системе с установленными зонами

Управление размером резидентного набора (RSS) зоны осуществляется путем настройки ресурса capped-memory при настройке зоны. Для получения дополнительной информации см. Solaris 10 8/07: Управление физической памятью и ресурс capped-memory. rcapd может выполняться внутри зоны, в том числе в глобальной зоне, для реализации в этой зоне ограничений по памяти.

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

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

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


Примечание –

Демон rcapd невозможно использовать в типизированной зоне lx. Однако для ограничения использования памяти в типизированной зоне может использоваться демон из глобальной зоны.


Порог принудительного ограничения памяти

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

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

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

Информацию по установке принудительного ограничения приведены в Установка порога принудительного ограничения памяти.

Определение ограничивающих значений

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

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

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

Воздействие на систему ввода-вывода

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

Воздействие на нагрузку процессора

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

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

Другая часть процессорного времени демона затрачивается на реализацию ограничений при их превышении. Затраченное время находится в пропорциональной зависимости от количества задействованной виртуальной памяти. Необходимое процессорное время уменьшается или увеличивается в ответ на соответствующие изменения общего размера адресного пространства рабочей задачи. Эта информация отображается в столбце vm выходных данных команды rcapstat. Для получения дополнительной информации см. Контроль использования ресурсов командой rcapstat и справочную страницу rcapstat(1).

Создание отчетов по совместно используемой памяти

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

Данная оценка полезна при работе с базами данных и другими рабочими нагрузками, активно использующими общую память. Для рабочих нагрузок баз данных можно провести выборку использования памяти проектом для определения подходящего начального значения ограничения, используя результаты выполнения команды prstat с параметрами -J или -Z. Для получения дополнительных сведений см. справочную страницу prstat(1M).

Интервалы операций rcapd

Для периодических операций, выполняемых rcapd, можно настроить интервалы.

Все интервалы указываются в секундах. Операции rcapd и стандартные значения их интервалов описаны в следующей таблице.

Операция 

Значение интервала по умолчанию в секундах 

Описание 

scan

15 

Число секунд между операциями сканирования для процессов, добавленных или устраненных из рабочей нагрузки проекта. Минимальное значение – 1 секунда. 

sample

Число секунд между выборкой размера резидентного набора и последующим принудительным ограничением. Минимальное значение – 1 секунда. 

report

5  

Число секунд между обновлением статистики подкачки страниц. При значении 0 статистика не обновляется, и результат команды rcapstat выводится в устаревшем виде.

config

60 

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

Инструкции по настройке интервалов приведены в Установка интервалов операций.

Определение интервалов сканирования rcapd

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

Определение интервалов выборки

Интервал выборки, настроенный командой rcapadm, представляет собой минимальный интервал времени ожидания rcapd между выборкой показателей потребления памяти рабочей нагрузкой и принудительным ограничением в случае превышения. В случае уменьшения этого интервала частота применения ограничений демоном rcapd обычно возрастает, что может привести к увеличению объема ввода-вывода вследствие подкачки страниц. Однако более короткий интервал выборки может также снизить воздействие внезапного скачка в потреблении физической памяти определенной рабочей нагрузкой на другие задачи. Интервал между операциями выборки, в течение которого память потребляется рабочей нагрузкой без ограничений, и, возможно, отбирается память у других ограниченных нагрузок, сужается.

Если интервал выборки, указанный для команды rcapstat, меньше интервала, указанного для команды rcapd c rcapadm, выходные данные для некоторых интервалов могут быть нулевыми. Это вызвано тем, что частота обновления статистики rcapd меньше интервала, указанного командой rcapadm. Интервал, указанный командой rcapadm , не зависит от интервала выборки, используемого командой rcapstat.

Контроль использования ресурсов командой rcapstat

Команда rcapstat позволяет контролировать использование ресурсов проектами, для которых установлены ограничения по памяти. Пример отчета rcapstat cм. в Создание отчетов командой rcapstat.

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

интервал

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

число

Число повторений статистики. По умолчанию rcapstat выводит статистику до поступления сигнала прерывания или до выхода процесса rcapd.

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

В следующей таблице описаны заголовки столбцов в отчете rcapstat.

Заголовки столбцов rcapstat

Описание 

id

Идентификатор проекта, ограниченного по памяти. 

project

Название проекта. 

nproc

Количество процессов в проекте. 

vm

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

rss

Оценочный общий размер резидентного набора (RSS) процессов проекта в килобайтах (K), мегабайтах (M) или гигабайтах (G) без учета совместно используемых страниц. 

cap

Ограничение RSS, определенное для проекта. Для получения информации о настройке ограничений памяти см. Атрибут ограничения использования физической памяти проектами или справочную страницу rcapd(1M).

at

Общий объем памяти, в отношении которого демоном rcapd предпринимались попытки постраничного вывода с момента последней выборки rcapstat.

avgat

Средний объем памяти, в отношении которого демоном rcapd предпринимались попытки постраничного вывода в течение каждого цикла выборки с момента последней выборки rcapstat . Скорость, с которой демоном rcapdвыполняется выборка набора RSS, можно задать командой rcapadm. См. Интервалы операций rcapd.

pg

Общий объем памяти, для которой демоном rcapd был успешно выполнен постраничный вывод с момента последней выборки rcapstat.

avgpg

Оценка среднего объема памяти, для которой демоном rcapd был успешно выполнен постраничный вывод в течение каждого цикла выборки с момента последней выборки rcapstat . Скорость выборки размеров RSS процессов демоном rcapd выполняет выборку размеров RSS процессов, можно задать командой rcapadm. См. Интервалы операций rcapd.

Команды, используемые с rcapd

Справочная информация по командам 

Описание 

rcapstat(1)

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

rcapadm(1M)

Настройка демона ограниченного выделения ресурсов, отображение текущего состояния демона ограниченного выделения ресурсов, если он настроен, и включение либо отключение ограниченного выделения ресурсов. 

rcapd(1M)

Демон ограниченного выделения ресурсов.