Этот пример демонстрирует различные этапы создания и запуска новой конфигурации WLM. В нем не обсуждается наиболее эффективное распределение общих ресурсов и ограничений. На настройку этих значений влияют конкретные условия системы, приложений и целей организации, поэтому настройка должна выполняться на индивидуальной основе. В разделе Принципы WLM приведены советы по определению параметров классификации и управления распределением ресурсов.
В данном примере операции выполняются с помощью интерфейса командной строки WLM. Кроме того, для каждой операции приведены краткие указания по выполнению с помощью SMIT и Web-администратора системы.
Для управления конфигурацией WLM и администрирования суперклассов у вас должны быть права доступа root. Права доступа root необходимы для выполнения первых нескольких операций. Дополнительная информация о правах доступа root приведена в разделе Принципы WLM.
Самый простой способ создать новую конфигурацию - скопировать существующую конфигурацию и изменить ее свойства. WLM включает пример конфигурации, которая называется template. В ней предопределены суперклассы Default, System и Shared.
Создайте новую конфигурацию new_config, создав каталог /etc/wlm/new_config, и скопировав в него файлы из каталога /etc/wlm/template:
Примечание: Для выполнения этой операции необходимо войти в систему как пользователь root.
cd /etc/wlm cp -pr /etc/wlm/template new_config
Убедитесь, что каталог new_config принадлежит пользователю root, предоставляет права доступа на чтение, запись и выполнение только владельцу, и права доступа на чтение и выполнение для группы и др. Например:
ls -l /etc/wlm/new_config всего 40 -rw-r--r-- 1 root system 423 Июн. 29 14:16 classes -rw-r--r-- 1 root system 55 Июн. 29 14:16 description -rw-r--r-- 1 root system 430 Июн. 29 14:16 limits -rw-r--r-- 1 root system 496 Июн. 29 14:16 rules -rw-r--r-- 1 root system 404 Июн. 29 14:16 shares
lsclass -d new_config System Default Shared
Созданная конфигурация включает набор файлов свойств WLM, содержащих описания предопределенных суперклассов System, Default и Shared. С помощью текстового редактора измените описание в соответствии с новой конфигурацией.
Для того чтобы сделать это, например, с помощью SMIT, перейдите к главному меню Администратора рабочей схемы (введите wlm в командной строке или в главном меню SMIT выберите Планирование производительности и ресурсов, затем выберите Управление рабочей схемой). Затем выберите Работа с альтернативными конфигурациями и перейдите к меню Копировать конфигурацию. Введите имя копируемой конфигурации template и имя новой конфигурации new_config , затем нажмите клавишу Enter.
Для продолжения работы с новой конфигурацией вернитесь к меню Конфигурации и выберите пункт Выбрать конфигурацию. Введите или выберите имя новой конфигурации new_config и нажмите клавишу Enter. С этого момента по умолчанию для сеанса SMIT WLM будет применяться конфигурация new_config, пока в меню Выбрать конфигурацию не будет выбрана другая конфигурация или вы не завершите работу программы SMIT. Если новая конфигурация не будет выбрана, вы будете работать с текущей конфигурацией в каталоге /etc/wlm/current.
В Web-администраторе системы выбирать конфигурацию необходимо каждый раз при работе с конфигурацией, отличной от текущей.
Теперь создайте два суперкласса с базовым набором атрибутов и покажите делегированное администрирование подклассов.
Например, введите, как пользователь root, следующую команду:
mkclass -a inheritance=yes -a tier=1 -c shares=1 -m shares=1 \ -d new_config super1
Эта команда создает суперкласс с именем super1 в конфигурации new_config на уровне суперкласса 1 со значением Yes атрибута inheritance. Суперклассу super1 присваивается один общий процессор и один общий ресурс памяти. Для всех остальных атрибутов, прав доступа к ресурсам и ограничений устанавливаются значения по умолчанию. Дополнительная информация приведена в разделе Принципы WLM .
Для того чтобы создать еще один суперкласс, super2, на уровне 1 с двумя общими процессорами и тремя общими ресурсами памяти, и предоставить права доступа на администрирование его подклассов пользователю wlmu0, введите в командной строке следующую команду:
mkclass -a tier=1 -a adminuser=wlmu0 -c shares=2 -m shares=3 \ -d new_config super2
Введите следующую команду в командной строке для проверки параметров:
lsclass -d new_config
Данные вывода должны выглядеть следующим образом:
Система Default Shared super1 super2 root #
В данном примере к трем предопределенным суперклассам добавляются два пользовательских суперкласса, созданных на шаге 1.
Для создания тех же суперклассов с помощью SMIT, выберите конфигурацию на шаге 1, с помощью подменю Добавить класс создайте класс super1. Это меню позволяет создать суперкласс и настроить его общие характеристики (атрибуты description, inheritance, tier, authuser/authgroup, adminuser/admingroup и rset). Затем в меню Изменить/Просмотреть характеристики класса выберите управление ресурсами (процессорами, памятью и вводом-выводом дисков), чтобы настроить указанные выше атрибуты.
Повторите операцию с суперклассом super2. В Web-администраторе системы операция выполняется схожим образом.
Теперь создайте набор правил присвоения для присвоения процессов этим суперклассам.
Добавить, изменить или удалить правила присвоения из командной строки нельзя. Измените правила присвоения с помощью SMIT или Web-администратора системы. В программе SMIT с уже выбранной конфигурацией выберите Правила присвоения классов -> Список и правила, чтобы просмотреть содержимое файла, затем Создать новое правило для каждого правила, которое необходимо создать.
Создав два правила, введите следующую команду для проверки результатов:
cat /etc/wlm/new_config/rules
Вывод команды будет выглядеть примерно следующим образом:
* класс зарз. полз. группа приложение тип тег super1 - wlmu[3-6] - - - - super2 - wlmu[0-2] - - - - System - root - - - - Default - - - - - -
По новым правилам все процессы с фактическим ИД пользователя wlmu3, wlmu4, wlmu5, и wlmu6 присваиваются классу super1, а процессы с фактическим ИД пользователя wlmu0, wlmu1 и wlmu2 - классу super2.
WLM сопоставляет процесс с правилами в порядке появления правил в файле и присваивает процесс классу, соответствующему первому подходящему правилу. В предыдущем примере процесс с ИД пользователя wlmu1 будет присвоен классу super2.
При добавлении правил файл правил уже содержал правила присвоения для предопределенных суперклассов System и Default.
Если бы тот же процесс применял фактический ИД пользователя wlmu1, он был бы присвоен суперклассу Default.
На предыдущий этапах вносились изменения в файлы свойств WLM. Даже если операции производились с текущей конфигурацией и WLM был уже запущен, новых классов не было бы в структурах данных ядра WLM, и новые правила не были бы доступны в операционной системе.
Новая конфигурация и изменения в текущей конфигурации загружаются в структуры данных ядра WLM при запуске или обновлении WLM. После этого WLM инициирует процессы классификации и управление ресурсами в соответствии с правилами и стратегиями, определенными в текущей конфигурации.
Команда wlmcntrl выполняет обработку конфигурации WLM перед передачей данных в ядро. Команда wlmcntrl обрабатывает символы подстановки в полях имени пользователя, имени группы и имени файла приложения в файле правил. В правилах для класса superclass2, например, было указано wlmu[0-2]. Команда wlmcntrl развернет список до wlmu0, wlmu1 и wlmu2, и передаст соответствующие UID, например, 221, 222 и 223, в ядро. Это выполняется и для указанных имен групп. При обработке полных имен файлов команда wlmcntrl также применяет раскрытие символов подстановки при составлении списка имен. После этого, перед передачей данных в ядро команда обращается к каждому файлу и получает для каждого файла идентификатор в упрощенном формате для ядра.
В приведенном ниже примере WLM не запущен. Запустите WLM с новой конфигурацией с помощью команды wlmcntrl. Введите в командной строке:
wlmcntrl -d new_config wlmcntrl -q
В командной строке появится следующее сообщение:
WLM выполняется
Все существующие процессы классифицируются по определенным выше правилам. Для просмотра классификации процессов введите следующую команду ps:
ps -e -o pid,ppid,user,class,pri,args
Команда выводит данные в следующем формате:
PID PPID USER CLASS PRI COMMAND 1 0 root System 83 /etc/init 8634 9860 root System 83 /usr/sbin/inetd 8958 9860 root System 83 /usr/sbin/hostmibd 9332 1 root System 83 /usr/sbin/syncd 60 9606 1 root System 83 /usr/lib/errdemon 9860 1 root System 83 /usr/sbin/srcmstr 10180 9860 root System 83 /usr/sbin/portmap 11376 9860 root System 83 /usr/sbin/snmpd 11962 9860 root System 83 /usr/sbin/biod 6 12208 9860 root System 83 /usr/sbin/syslogd 12408 9860 root System 83 sendmail: rejecting connections on port 12768 1 wlmu0 super2 159 /tmp/test12 12942 9860 root System 83 /usr/sbin/dpid2 13158 1 root System 83 /usr/ccs/bin/shlap 13432 9860 root System 83 /usr/sbin/rpc.lockd 13682 9860 daemon Default 60 /usr/sbin/rpc.statd 13942 1 root System 83 -ksh 14198 1 root System 83 /usr/sbin/cron 14456 1 root System 83 /usr/sbin/uprintfd 14730 9860 root System 83 /usr/sbin/writesrv 15004 9860 root System 83 /usr/sbin/qdaemon 15224 1 root System 83 /usr/bin/AIXPowerMgtDaemon 15742 1 root System 83 /usr/sbin/getty /dev/tty1 16256 1 root System 83 /usr/lpp/diagnostics/bin/diagd 16788 1 wlmu1 super2 159 /tmp/test14 17062 1 wlmu0 super2 159 /tmp/test2 17802 1 wlmu1 super2 159 /tmp/test15 18318 1 wlmu2 super2 159 /tmp/test19 18834 1 wlmu3 super1 235 /tmp/test9 19350 1 wlmu3 super1 235 /tmp/test0 19866 1 wlmu3 super1 235 /tmp/test1 20382 1 wlmu4 super1 235 /tmp/test11 20898 1 wlmu4 super1 235 /tmp/test4 21414 1 wlmu5 super1 235 /tmp/test7 21930 1 wlmu6 super1 235 /tmp/test7 22446 1 wlmu6 super1 235 /tmp/test17 22962 1 wlmu10 Default 85 /tmp/test17 23478 1 wlmu10 Default 85 /tmp/test8 23750 13942 root System 84 ps -e -o pid,ppid,user,class,pri,args
В приведенном выше примере процессы распределены следующим образом:
Флаг -c команды ps позволяет просмотреть все процессы заданного класса. Для того чтобы просмотреть список всех процессов, принадлежащих классу super1, введите следующую команду:
ps -l -c super1
Вывод команды будет выглядеть примерно следующим образом:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 240001 A 224 18834 1 84 235 20 3402ed 68 0 7:24 test9 240001 A 224 19350 1 85 235 20 3c02ef 68 0 7:19 test0 240001 A 224 19866 1 85 235 20 4402f1 68 0 7:15 test1 240001 A 223 20382 1 84 235 20 4c02f3 68 0 7:07 test11 240001 A 223 20898 1 85 235 20 5402f5 68 0 6:58 test4 240001 A 222 21414 1 85 235 20 5c02f7 68 0 6:42 test7 240001 A 221 21930 1 84 235 20 6402f9 68 0 6:14 test7 240001 A 221 22446 1 85 235 20 6c02fb 68 0 6:05 test17
При выполняющемся WLM вызовите команду wlmstat , чтобы просмотреть статистические данные использования ресурсов по классам:
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 33 0 0 super2 21 0 0
Программы testXX - циклы процессоров, поэтому нет данных по использованию памяти и дисковому вводу-выводу.
До этого этапа для выполнения всех описанных действий требовались права доступа root. Только пользователь root может создавать новую конфигурацию, создавать и осуществлять управление суперклассами, запускать и завершать работу WLM, изменять режим работы WLM и вносить изменения в текущую конфигурацию.
При создании суперкласса для конкретной конфигурации системный администратор, выполняя операции как пользователь root, может передать права на создание и управление подклассами пользователю или группе и обновить данные ядра WLM, относящиеся к этим подклассам.
В суперклассе super2, данные полномочия были переданы пользователю wlmu0 (атрибут adminuser суперкласса super1 конфигурации new_config ).
Войдите в систему как пользователь wlmu0 и введите в командной строке:
mkclass -a tier=0 -a authuser=wlmu2 -c shares=10 -d new_config -S super2 sub1
Данная команда создает подкласс суперкласса super2 с именем sub1 на уровне подкласса 0 с десятью общими ресурсами процессора и дает пользователю wlmu2 права доступа на присвоение вручную процессов подклассу super2.sub1 .
Примечание: super2.sub1 - полное имя подкласса, уникально определяющее подкласс в заданной конфигурации. Имена подклассов различных суперклассов могут совпадать.
Для создания подкласса super2.sub1 на уровне 3 с 20 общими ресурсами процессора введите в командной строке:
mkclass -a tier=3 -c shares=20 -d new_config -S super2 sub2
Для атрибутов, ресурсов и ограничений, не определенных явно, применяются системные значения по умолчанию.
Основные различия между суперклассами и подклассами лежат в прав доступа к ресурсам и ограничений:
Для проверки настроенных параметров введите в командной строке следующую команду:
lsclass -d new_config -r
Вывод команды будет выглядеть примерно следующим образом:
Система Default Shared super1 super2 super2.Default super2.Shared super2.sub1 super2.sub2 wlmu0 $
Для просмотра общего списка суперклассов и классов укажите в команде lsclass флаг -r.
Для создания подклассов с помощью SMIT, сначала выберите суперкласс, в котором необходимо создать подклассы. Для этого выберите Работа с альтернативными конфигурациями/Выбор меню конфигурации. Выберите new_config -> Работа с набором подклассов, затем выберите суперкласс super2. Работая с программой SMIT, вы можете в любой момент проверить выбранную конфигурацию или суперкласс с помощью меню Показать выбранный объект. В Web-администраторе системы операция выполняется схожим образом.
После того как нужные конфигурация и суперкласс будут выбраны, создайте подклассы с помощью опции Добавить класс и Изменить/Просмотреть характеристики класса в меню суперкласса.
Примечание: Конфигурация WLM new_config - текущая конфигурация с полным именем /etc/wlm/current, поэтому в SMIT (или Web-администраторе системы). не нужно выбирать new_config . Тем не менее, рекомендуется всегда выбирать нужную конфигурацию, если в каталоге /etc/wlm есть несколько конфигураций WLM. Если системный администратор или сценарий, запущенный планировщиком cron, переключит конфигурацию WLM во время сеанса SMIT или Web-администратора системы, то часть внесенных вами изменений могут быть применены к другой конфигурации.
Как и в случае с суперклассом, для присвоения процессов к подклассу, необходимо задать для подкласса набор правил присвоения.
Для создания правил присвоения подкласса воспользуйтесь программой SMIT или Web-администратором системы. Сначала выберите нужный суперкласс - выберите new_config и super2. В правилах присвоения подклассов применяются те же атрибуты процессов и тот же формат, что и в правилах присвоения суперклассов. Ниже приведены заданные правила:
cat /etc/wlm/new_config/super2/rules * класс зарз. полз. группа приложение тип тег sub1 - wlmu1 sub2 - wlmu2
При автоматическом присвоении для определения класса, которому будет присвоен процесс, атрибуты процесса сравниваются с атрибутами, заданными в файле правил присвоения суперкласса для активной (текущей) конфигурации. Затем, если у суперкласса есть подклассы, определяется нужный подкласс путем сравнения атрибутов процесса со значениями, заданными в файле правил присвоения подкласса.
Правила присвоения подкласса могут применяться только в том случае, если они совместимы с правилами присвоения соответствующего суперкласса. Например, в данном примере, в соответствии с правилами суперкласса, классу super2 присваиваются процессы с фактическим UID wlmu0, wlmu1 и wlmu2.
Если указать, что какому-либо подклассу данного суперкласса будут присваиваться процессы с фактическим UID wlmu5, то ни один процесс, присвоенный классу super2, не удовлетворит данному условию. Таким образом, подкласс не будет использован.
Создав определения подклассов и соответствующие правила присвоения, необходимо активизировать новые подклассы. Как уже было сказано ранее, изменения вносятся только в файлы конфигурации. Новые классы на активизируются, пока изменения не будут переданы в ядро.
Для просмотра статистических данных WLM на данном этапе введите следующую команду:
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 33 0 0 super2 21 0 0
Команда wlmcntrl передает определения классов в ядро. Если WLM уже запущен, обновить структуры данных ядра WLM позволяет флаг -u. Кроме того, являясь администратором суперкласса, вы можете обновлять только данные, относящиеся к подклассам данного суперкласса. Так как у вас нет прав доступа root, команда wlmcntrl не позволяет запустить или завершить работу WLM или загрузить новую конфигурацию, поэтому администратор конкретного суперкласса не может внести изменения в другие суперклассы.
Для обновления суперклассов введите в командной строке следующую команду:
wlmcntrl -u -S super2
Для просмотра обновленных структур данных ядра WLM, содержащих новые подклассы, введите следующую команду:
wlmstat -a
Команда выводит данные в следующем формате:
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 33 0 0 super2 19 0 0 super2.Default 12 0 0 super2.Shared 0 0 0 super2.sub1 5 0 0 super2.sub2 2 0 0
Если указан флаг -a использование ресурсов подклассами показывается в процентах от общих ресурсов системы. В данном случае все процессы суперкласса super2 используют 19% времени процессора, из этих 19% 12% используют процессы подкласса Default, 5% - процессы подкласса sub1 и 2% - подкласса sub2. Если флаг -a не указан, использованные подклассом ресурсы будут показаны в процентах от ресурсов, используемых суперклассом. Для просмотра использованных ресурсов в процентах от ресурсов, использованных суперклассом, введите в командной строке wlmstat и нажмите клавишу Enter. Вывод команды будет выглядеть примерно следующим образом:
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 33 0 0 super2 19 0 0 super2.Default 63 0 0 super2.Shared 0 0 0 super2.sub1 26 0 0 super2.sub2 11 0 0
Из данных вывода следует, что на подкласс Default приходится 63% времени CPU, использованного суперклассом, на подкласс sub1 - 26%, а на подкласс sub2 - 11%. Как было отмечено выше, ограничения и ресурсы для подклассов задаются относительно ресурсов суперкласса, а не всей системы.
Для просмотра вывода команды ps с активными подклассами введите в командной строке следующую команду:
ps -e -o pid,ppid,user,class,pri,args | grep super2
Команда выводит данные в следующем формате:
12768 1 wlmu0 super2.Default 170 /tmp/test12 16788 1 wlmu1 super2.sub1 159 /tmp/test14 17062 1 wlmu0 super2.Default 170 /tmp/test2 17802 1 wlmu1 super2.sub1 159 /tmp/test15 18318 1 wlmu2 super2.sub2 207 /tmp/test19 23782 13942 wlmu0 super2.Default 168 -ksh 24032 23782 wlmu0 super2.Default 168 grep super2 25040 23782 wlmu0 super2.Default 169 ps -e -o pid,ppid,user,class,pri,args
Ниже приведены файлы свойств WLM, которые были созданы в каталоге /etc/wlm/new_config:
-rw-r--r-- 1 root system 112 Jul 2 17:56 classes -rw-r--r-- 1 root system 55 Jun 29 14:16 description -rw-r--r-- 1 root system 31 Jun 29 16:35 limits -rw-r--r-- 1 root system 544 Jun 29 14:27 rules -rw-r--r-- 1 root system 78 Jun 29 16:35 shares drwxr-xr-x 2 wlmu0 system 512 Jun 29 15:20 super2 -rw-r--r-- 1 wlmu0 staff 72 Jun 29 14:57 super2/rules -rw-r--r-- 1 wlmu0 staff 0 Jun 29 14:55 super2/limits -rw-r--r-- 1 wlmu0 staff 40 Jun 29 14:55 super2/shares -rw-r--r-- 1 wlmu0 staff 98 Jun 29 14:55 super2/classes
Права доступа на запись к файлам свойств WLM, находящимся непосредственно в каталоге /etc/wlm/new_config, есть только у пользователя root. Правами доступа на запись к файлам свойств WLM для подклассов суперкласса super2, находящимся в каталоге /etc/wlm/new_config/super2, обладает пользователь wlmu0. Это обусловлено тем, что пользователь wlmu0 является администратором суперкласса super2. Информация о владельце и права доступа не изменились бы, если бы подклассы создавал пользователь root. Если системный администратор указал бы в качестве администратора суперкласса группу с помощью атрибута admingroup, тогда для файлов был бы задан ИД данной группы, и права доступа на принадлежали бы этой группе. Изменение администратора суперкласса (например, при изменении атрибута adminuser) могло бы вызвать определенные сложности, однако команда chclass автоматически вносит изменений в принадлежность и права доступа к файлам.
Создав первую пробную конфигурацию, вы можете поэксперементировать с различными режимами работы WLM, изменить общие ресурсы и настроить ограничения. Для проверки результатов изменения параметров воспользуйтесь командой wlmstat. Кроме того, вы можете попробовать другие функции WLM, такие как присвоение процессов вручную.
Все операции по управлению конфигурациями WLM можно выполнить с помощью интерфейсов SMIT, Web-администратора системы и командной строки. Следующие функции WLM не поддерживаются всеми тремя интерфейсами: