Для ограничения используемых процессом определенного класса физических ресурсов системы в WLM применяются наборы ресурсов (или rsets). WLM позволяет ограничить использование памяти и процессоров. Допустимый набор ресурсов состоит из памяти и по крайней мере одного процессора.
С помощью SMIT или Web-администратора системы системный администратор может определять и присваивать имена наборам ресурсов, которые включают подмножество доступных в системе ресурсов. Затем пользователь root или администратор суперклассов может с помощью WLM указать имя набора ресурсов в качестве значения атрибута rset класса WLM. После этого процессы, присвоенные этому классу WLM будут выполняться на процессорах, входящих в данный набор ресурсов, в результате нагрузка на процессор будет перераспределена.
В существующих в настоящее время есть только один общий домен памяти, используемый для всех наборов ресурсов, поэтому данный метод не позволяет физически разделить рабочие схемы в памяти.
Службы реестра rset позволяют системному администратору определять и присваивать имена наборам ресурсов для применения другими пользователями или приложениями. Во избежание конфликтов имен реестр поддерживает двухуровневую схему присвоения имен. Имя набора ресурсов задается в формате пространство_имен/имя_набора_ресурсов. Длина каждой из строк пространство_имен и имя_набора_ресурсов не должна превышать 255 символов. Имена могут содержать только буквы, цифры, символы подчеркивания и точки (.). Регистр букв учитывается.. Пространство имен sys зарезервировано в операционной системе для определений наборов ресурсов, представляющих ресурсы системы.
Имена определений rset уникальны в пределах пространства имен реестра. При добавлении в реестр определения rset с именем существующего определения rset, существующее определение будет заменено, при наличии у пользователя необходимых прав доступа. Для создания, изменения, удаления наборов ресурсов и обновления встроенной базы данных rset с помощью SMIT или Web-администратор системы у пользователя должны быть права доступа root.
С каждым определением rset связан владелец (ИД пользователя), группа (ИД группы) и права доступа. Эти параметры задаются при создании определения rset и предназначены для управления доступом. Как и для файлов, существуют отдельные права доступа для владельца, группы и другие права, определяющие наличие прав доступа на чтение и запись. Права доступа на чтение позволяют получить определение rset, а права доступа на запись - изменить или удалить его.
Определения rset, созданные системным администратором, хранятся в файле настройки /etc/rsets. Формат данного файла не раскрывается, поэтому для управления наборами ресурсов следует применять интерфейсы SMIT или Web-администратора системы, чтобы избежать неполадок, связанных с несовместимостью форматов файлов. Как и в случае с определениями классов WLM перед применением определения наборов ресурсов должны быть загружены в структуры данных ядра.
Вместо объемного описания наборов ресурсов и инструкций по их созданию из блоков, называемых системные RAD (Домены доступа к ресурсам) ниже приведен пример создания набора ресурсов.
Данный пример приведен для системы с 24 процессорами. Системный администратор собирается создать набор ресурсов, содержащий с 0 по 5 процессоры, и с помощью конфигурации WLM ограничить этими шестью процессорами ресурсы, используемые процессами суперкласса. В данном примере применяется SMIT, однако те же операции могут выполнены с помощью Web-администратора системы.
Сначала необходимо создать набор ресурсов и присвоить ему имя. Системный администратор вызывает меню Управление наборами ресурсов либо из главного меню, выбрав Планирование производительности и ресурсов, а затем Управление наборами ресурсов, либо с помощью команды быстрого доступа smit rset.
Опция Управление базой данных наборов ресурсов предназначена для создания изменения и удаления наборов ресурсов. Перед тем, как выбрать опцию Управление базой данных наборов ресурсов, выберите Составить список всех RAD системы, чтобы просмотреть все блоки, из которых можно создать наборы ресурсов:
СОСТОЯНИЕ КОМАНДЫ Команда: выполнена stdout: yes stderr: no Перед завершением обработки команды ниже могут быть показаны дополнительные инструкции. T Имя Владелец Группа Режим CPU Память Ресурсы r sys/sys0 root system r----- 24 98298 sys/sys0 r sys/node.00000 root system r----- 24 98298 sys/sys0 r sys/mem.00000 root system r----- 0 98298 sys/mem.00000 r sys/cpu.00023 root system r----- 1 0 sys/cpu.00023 r sys/cpu.00022 root system r----- 1 0 sys/cpu.00022 r sys/cpu.00021 root system r----- 1 0 sys/cpu.00021 r sys/cpu.00020 root system r----- 1 0 sys/cpu.00020 r sys/cpu.00019 root system r----- 1 0 sys/cpu.00019 r sys/cpu.00018 root system r----- 1 0 sys/cpu.00018 r sys/cpu.00017 root system r----- 1 0 sys/cpu.00017 r sys/cpu.00016 root system r----- 1 0 sys/cpu.00016 r sys/cpu.00015 root system r----- 1 0 sys/cpu.00015 r sys/cpu.00014 root system r----- 1 0 sys/cpu.00014 r sys/cpu.00013 root system r----- 1 0 sys/cpu.00013 r sys/cpu.00012 root system r----- 1 0 sys/cpu.00012 r sys/cpu.00011 root system r----- 1 0 sys/cpu.00011 r sys/cpu.00010 root system r----- 1 0 sys/cpu.00010 r sys/cpu.00009 root system r----- 1 0 sys/cpu.00009 r sys/cpu.00008 root system r----- 1 0 sys/cpu.00008 r sys/cpu.00007 root system r----- 1 0 sys/cpu.00007 r sys/cpu.00006 root system r----- 1 0 sys/cpu.00006 r sys/cpu.00005 root system r----- 1 0 sys/cpu.00005 r sys/cpu.00004 root system r----- 1 0 sys/cpu.00004 r sys/cpu.00003 root system r----- 1 0 sys/cpu.00003 r sys/cpu.00002 root system r----- 1 0 sys/cpu.00002 r sys/cpu.00001 root system r----- 1 0 sys/cpu.00001 r sys/cpu.00000 root system r----- 1 0 sys/cpu.00000
Как было сказано ранее, sys/sys0 представляет всю систему (в данном случае, 24 процессорную систему с 96 Гб памяти). Данный набор ресурсов потенциально могут использовать процессы классов WLM, для которых не указан атрибут rset . При создании набора ресурсов будут выбраны несколько процессоров и некоторый объем памяти.
Выберите Управление базой данных наборов ресурсов, затем выберите Добавить набор ресурсов в базу данных. В появившемся меню введите или выберите Пространство имен и Имя набора ресурсов, а затем выберите остальные атрибуты наборов ресурсов. В данном примере создается новое пространство имен и набор ресурсов, поэтому в поля Пространство имен и Имя набора ресурсов вводятся строки символов.
Для заполнения других полей выберите атрибуты из списков. Выберите значение поля Ресурсы из списка RAD системы. В данном примере выберите строки, соответствующие памяти и процессорам с 0 по 5 (с sys/cpu.00000 по sys.cpu.00005). Помните, что поддерживаются только наборы, содержащие процессоры. Выбрав ресурсы, нажмите клавишу Enter, чтобы создать новый набор ресурсов с именем admin/proc0_5 .
На этом этапе в каталоге /etc/rsets создается новый набор ресурсов. Для применения нового набора ресурсов добавьте его в структуры данных ядра, выбрав опцию Обновить базу данных наборов ресурсов. Это меню позволяет обновить базу данных немедленно, при следующей загрузке или использовать оба варианта. При создании первого набора ресурсов выберите использовать оба варианта, чтобы определенные администратором наборы ресурсов загружались при каждой загрузке системы и были доступны в WLM. После этого следует использовать опцию немедленно.
После создания нового набора ресурсов он будет применяться в WLM с конфигурацией new_config, определенной в предыдущем разделе.
Необходимо вернуться к определению суперкласса super1 и задать атрибут rset для применения нового набора ресурсов. С помощью SMIT, перейдите к главному меню Администратора рабочей схемы (команда быстрого доступа smit wlm), затем к меню Работа с альтернативными конфигурациями и Выбрать конфигурацию, затем выберите new_config. После этого вернитесь к главному меню, из него перейдите к меню Изменить / Просмотреть характеристики класса, а затем к меню Общие характеристики класса . Введите или выберите имя класса super1 и нажмите клавишу Enter, чтобы просмотреть атрибуты класса.
Перейдите к полю rset, нажмите клавишу F4, чтобы просмотреть список доступных наборов ресурсов, и выберите набор ресурсов admin/proc0_5. После того как новый набор ресурсов будет выбран и изменения будут зафиксированы, на диске будет изменен файл классы.
После запуска (или обновления если он уже был запущен) WLM с новым определением класса, как это было показано в предыдущем разделе, выполните приведенную ниже проверку нового набора ресурсов класса super1 :
root # wlmstat CLASS CPU MEM BIO Unclassified 0 0 0 Unmanaged 0 0 0 Default 8 0 0 Shared 0 0 0 System 0 0 0 super1 25 0 0 super2 0 0 0 super2.Default 0 0 0 super2.Shared 0 0 0 super2.sub1 0 0 0 super2.sub2 0 0 0 root #
Эти данные свидетельствуют о том, что 90 процессов, которые в неограниченном режиме заняли бы 100% ресурсов процессоров (почти в четыре раза больше, если бы это было возможно), используют только 25% так как их ресурсы ограничены процессорами с 0 по 5.
UID PID PPID C STIME TTY TIME CMD wlmu3 11234 1 95 15:11:45 0 3:28 loop ... ... ... ...
Перейдите к полю Показать раздел процесса меню SMIT rset. Введите PID нужного процесса (или выберите его, вызвав список процессов нажатием клавиши F4) и нажмите Enter. Например:
СОСТОЯНИЕ КОМАНДЫ Команда: выполнена stdout: yes stderr: no Перед завершением обработки команды ниже могут быть показаны дополнительные инструкции. CPU Память Ресурсы 6 98298 sys/mem.00000 sys/cpu.00005 sys/cpu.00004 sys/cpu.00003 sys/cpu.00002 sys/cpu.00001 sys/cpu.00000
При выборе процесса из класса, для которого не задан атрибут rset (в данном примере - процесс init) будет показан следующий набор ресурсов по умолчанию:
CPU Память Ресурсы 24 98298 sys/sys0
Применение наборов ресурсов позволяет эффективно разделить процессы относительно используемых ими ресурсов процессоров. Разделив различные процессы на два класса и выделив каждому классу отдельное подмножество процессоров, можно устранить конкуренцию между процессами за процессоры. Конечно, конкуренция за физическую память и ввод-вывод сохранится.