В этой главе содержатся процедуры настройки и использования демона ограниченного выделения ресурсов rcapd.
Обзор демона rcapd приведены в Глава 10Управление физической памятью с помощью демона ограниченного выделения ресурсов (обзор).
Задача |
Описание |
Инструкции |
---|---|---|
Установка порога принудительного ограничения памяти |
Настройка ограничения, которое реализуется при недостатке физической памяти, доступной процессам. | |
Установка интервала операций |
Интервал применяется к периодическим операциям, выполняемым демоном ограниченного выделения ресурсов. | |
Включение ограниченного выделения ресурсов |
Включение ограниченного выделения ресурсов в системе. | |
Отключение ограниченного выделения ресурсов |
Отключение ограниченного выделения ресурсов в системе. | |
Вывод информации об ограничениях и проектах |
Просмотр примеров команд для создания отчетов. |
Создание отчетов об ограниченном использовании ресурсов и о проектах |
Контроль размера резидентного набора проекта |
Создание отчета о размере резидентного набора проекта. | |
Определение размера рабочего набора проекта |
Создание отчета о размере рабочего набора проекта. | |
Создание отчета об использовании памяти и ограничениях использования памяти |
Вывод строки использования памяти и принудительного ограничения в конце отчета для каждого интервала. |
Создание отчетов по использованию памяти и порогу принудительного ограничения памяти |
В этом разделе приведены процедуры настройки демона ограниченного выделения ресурсов командой rcapadm. Для получения дополнительной информации см. раздел Настройка rcapd и справочную страницу rcapadm(1M). Также рассматривается настройка временного ограничения выделения ресурсов с помощью команды rcapadm
Команда rcapadm без аргументов выводит текущее состояние демона ограниченного выделения ресурсов, если он настроен.
Ограничения можно настроить так, чтобы они не применялись в условиях доступности достаточного объема физической памяти для процессов. Для получения дополнительной информации см. Порог принудительного ограничения памяти.
Минимальное значение (оно же значение по умолчанию) равно 0, т. е. ограничения применяются всегда. Приведенная ниже процедура позволяет задать другое минимальное значение.
Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).
Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения информации о создании роли и назначении роли пользователю см. раздел "Управление RBAC (карта задач)" в документе Руководство по системному администрированию: службы безопасности.
Для установки другого значения использования памяти, при котором должно применяться ограничение памяти, используется параметр -c команды rcapadm.
# rcapadm -c percent |
Значение процент лежит в диапазоне от 0 до 100. Более высокие значения соответствуют меньшему ограничению. Более высокое значение указывает на то, что задачи проекта, к которым относится ограничение, могут выполняться до момента достижения порогового значения потребления памяти по всей системе.
Инструкции по просмотру текущего потребления физической памяти и порога принудительного ограничения приведены в Создание отчетов по использованию памяти и порогу принудительного ограничения памяти.
В разделе Интервалы операций rcapd приводится информация об интервалах периодических операций, выполняемых демоном rcapd. Приведенная ниже процедура позволяет задать интервалы операций командой rcapadm.
Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).
Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения информации о создании роли и назначении роли пользователю см. раздел "Управление RBAC (карта задач)" в документе Руководство по системному администрированию: службы безопасности.
Для установки значений интервалов используется параметр -i.
# rcapadm -i interval=value,...,interval=value |
Все значения интервалов указываются в секундах.
Существует три способа включения ограниченного выделения ресурсов в системе. При включении ограниченного выделения ресурсов в файле /etc/rcap.conf выставляются значения по умолчанию.
Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).
Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения информации о создании роли и назначении роли пользователю см. раздел "Управление RBAC (карта задач)" в документе Руководство по системному администрированию: службы безопасности.
Демон ограниченного выделения ресурсов включается одним из следующих способов:
Включение ограниченного выделения ресурсов командой svcadm.
# svcadm enable rcap |
Для включения демона ограниченного выделения ресурсов с немедленным запуском и последующим включением при каждой загрузке системы необходимо ввести следующую команду:
# rcapadm -E |
Для включения демона ограниченного выделения ресурсов при каждой загрузке без немедленного запуска необходимо также указать параметр -n:
# rcapadm -n -E |
Существует три способа отключения ограниченного выделения ресурсов в системе.
Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).
Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения информации о создании роли и назначении роли пользователю см. раздел "Управление RBAC (карта задач)" в документе Руководство по системному администрированию: службы безопасности.
Демон ограниченного выделения ресурсов отключается одним из следующих способов:
Отключение ограниченного выделения ресурсов командой svcadm.
# svcadm disable rcap |
Для отключения демона ограниченного выделения ресурсов с немедленной остановкой и отменой запуска при загрузке системы необходимо ввести следующую команду:
# rcapadm -D |
Для отключения демона ограниченного выделения ресурсов без немедленной остановки следует также указать параметр -n:
# rcapadm -n -D |
Безопасное отключение демона ограниченного выделения ресурсов
Для безопасного отключения демона rcapd используется команда svcadm или rcapadm с параметром -D. В случае остановки демона командой kill (см. справочную страницу kill(1)) процессы могут остаться в остановленном состоянии до их перезапуска вручную. Для возобновления работы процесса используется команда prun. Для получения дополнительной информации см. справочную страницу prun(1).
Эта процедура предназначена для выделения максимального объема памяти, доступного для потребления указанной зоной. Значение остается действительным до ближайшей перезагрузки. Для настройки постоянно действующего ограничения используется команда zonecfg
Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).
Профиль управления процессами входит в роль системного администратора (System Administrator).
Настройте для зоны my-zone ограничение памяти в размере 512 МБ.
# rcapadm -z testzone -m 512M |
Для создания отчетов по статистике ограниченного выделения ресурсов используется команда rcapstat. Создание отчетов командой rcapstat описано в разделе Контроль использования ресурсов командой rcapstat . В этом разделе также описываются заголовки столбцов отчета. Эта информация также представлена на справочной странице rcapstat(1).
В следующих подразделах приводятся примеры создания отчетов в различных целях.
В этом примере ограничения определены для двух проектов, связанных с двумя пользователями. Ограничение для user1 равно 50 Мб, а для user2 – 10 Мб.
Следующая команда создает пять отчетов с 5-секундным интервалом выборки.
user1machine% rcapstat 5 5 id project nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 50M 0K 3312K 0K 78194 user2 1 2368K 1856K 10M 0K 0K 0K 0K id project nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1856K 10M 0K 0K 0K 0K id project nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1928K 10M 0K 0K 0K 0K id project nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1928K 10M 0K 0K 0K 0K id project nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1928K 10M 0K 0K 0K 0K |
Первые три строки результата составляют первый отчет, содержащий информацию об ограничении и о двух рассматриваемых проектах, а также статистику подкачки страниц с момента запуска rcapd. В столбцах at и pg содержится положительное число для user1 и нуль для user2; это означает, что в определенный момент в истории демона user1 превысил ограничение, а в случае user2 этого не произошло.
В последующих отчетах особой активности не наблюдается.
В следующем примере показан проект user1, RSS которого превосходит ограничение.
Следующая команда создает пять отчетов с 5-секундным интервалом выборки.
user1machine% rcapstat 5 5 |
id project nproc vm rss cap at avgat pg avgpg 376565 user1 3 6249M 6144M 6144M 690M 220M 5528K 2764K 376565 user1 3 6249M 6144M 6144M 0M 131M 4912K 1637K 376565 user1 3 6249M 6171M 6144M 27M 147M 6048K 2016K 376565 user1 3 6249M 6146M 6144M 4872M 174M 4368K 1456K 376565 user1 3 6249M 6156M 6144M 12M 161M 3376K 1125K |
Три процесса проекта user1 активно используют физическую память. Положительные значения в столбце pg указывают, что rcapd постоянно выполняет подкачку страниц памяти, пытаясь реализовать ограничение путем снижения потребления физической памяти процессами проекта. Однако демону rcapd не удается удержать RSS ниже порогового значения. На это указывают переменчивые значения rss, не отражающие соответствующего снижения. Сразу же после выполнения постраничного вывода памяти она снова используется рабочей нагрузкой, и счетчик RSS снова увеличивается. Это означает, что активно используется вся резидентная память проекта, и размер рабочего набора (WSS) превышает ограничение. Таким образом, для поддержания ограничения демону rcapd приходится выполнять постраничный вывод части рабочего набора. В этих условиях в системе будет по-прежнему наблюдаться высокая частота ошибок отсутствия страниц и связанная с этим высокая нагрузка на ввод/вывод, пока не будет выполнено одно из перечисленных ниже действий:
уменьшение WSS;
повышение значения ограничения;
изменение приложением режима доступа к памяти.
В этой ситуации сокращение интервала выборки может привести к снижению расхождения между значением RSS и значением ограничения путем более частой выборки рабочей нагрузки и реализации ограничений демоном rcapd.
Ситуация отсутствия страницы возникает, когда требуется создать новую страницу или получить страницу из устройства подкачки.
Следующий пример служит продолжением предыдущего примера, и в нем используется тот же проект.
В предыдущем примере показано, что использование физической памяти проектом user1 превышает значение, допускаемое соответствующим ограничением. В этом примере показан объем памяти, требуемый под задачи проекта.
user1machine% rcapstat 5 5 id project nproc vm rss cap at avgat pg avgpg 376565 user1 3 6249M 6144M 6144M 690M 0K 689M 0K 376565 user1 3 6249M 6144M 6144M 0K 0K 0K 0K 376565 user1 3 6249M 6171M 6144M 27M 0K 27M 0K 376565 user1 3 6249M 6146M 6144M 4872K 0K 4816K 0K 376565 user1 3 6249M 6156M 6144M 12M 0K 12M 0K 376565 user1 3 6249M 6150M 6144M 5848K 0K 5816K 0K 376565 user1 3 6249M 6155M 6144M 11M 0K 11M 0K 376565 user1 3 6249M 6150M 10G 32K 0K 32K 0K 376565 user1 3 6249M 6214M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K 376565 user1 3 6249M 6247M 10G 0K 0K 0K 0K |
В середине цикла ограничение для проекта user1 было увеличено с 6 ГБ до 10 ГБ. Это увеличение позволяет прекратить принудительное ограничение и нарастить размер резидентного набора, ограниченный только другими процессами и объемом памяти в компьютере. Столбец rss может стабилизироваться на размере рабочего набора проекта (WSS), в этом примере – 6247M. Это минимальное значение ограничения, позволяющее процессам проекта работать без постоянных ошибок отсутствия страниц.
Несмотря на то что для user1 установлено ограничение 6 Гб, в каждом 5-секундном интервале выборки RSS снижается, а ввод-вывод растет по мере постраничного вывода демоном rcapd части памяти рабочей нагрузки. Вскоре после завершения постраничного вывода задача, требующая наличия этих страниц для своей работы, выполняет обратный постраничный ввод. Цикл повторяется, пока ограничение не увеличивается до 10 Гб примерно в середине примера. RSS затем стабилизируется на 6,1 Гб. Поскольку RSS рабочей нагрузки теперь не превышает ограничение, подкачки страниц не происходит. Ввод-вывод, связанный с подкачкой страниц, также прекращается. Таким образом, для работы проекта в момент наблюдения требуется 6,1 Гб.
Также см. справочные страницы vmstat(1M) и iostat(1M).
Параметр -g команды rcapstat может использоваться для создания следующих отчетов:
текущее использование физической памяти как процент от физической памяти, установленной в системе;
Системный порог принудительного ограничения памяти, заданный командой rcapadm;
Параметр -g позволяет вывести строку использования памяти и принудительного ограничения в конце отчета по каждому интервалу.
# rcapstat -g id project nproc vm rss cap at avgat pg avgpg 376565 rcap 0 0K 0K 10G 0K 0K 0K 0K physical memory utilization: 55% cap enforcement threshold: 0% id project nproc vm rss cap at avgat pg avgpg 376565 rcap 0 0K 0K 10G 0K 0K 0K 0K physical memory utilization: 55% cap enforcement threshold: 0% |