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

Глава 13 Создание и администрирование пулов ресурсов (задачи)

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

Для получения вводной информации о пулах ресурсов см. Глава 12Пулы ресурсов (обзор).

Администрирование динамических пулов ресурсов (карта задач)

Задача 

Описание 

Инструкции 

Включение или выключение пулов ресурсов 

Включение или отключение пулов ресурсов в системе. 

Включение и отключение механизма пулов

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

Включение или выключение механизма динамических пулов ресурсов в системе. 

Включение и отключение механизма пулов

Создание статической конфигурации пулов ресурсов 

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

Создание статической конфигурации

Изменение конфигурации пула ресурсов 

Пересмотр конфигурации пулов в системе, например, создание дополнительных пулов. 

Изменение конфигурации

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

Когда пул связан с классом планирования, все процессы, привязанные к пулу, используют указанный планировщик. 

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

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

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

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

Установка уровня журналирования 

Указание уровня регистрации информации, генерируемой poold.

Настройки уровня журналирования poold

Использование текстового файла с командой poolcfg.

Входные данные команды poolcfg могут поступать из текстового файла.

Использование командных файлов совместно с командой poolcfg

Перенос ресурсов в ядре. 

Перенос ресурсов в ядре. Например, перенос ресурсов с определенными идентификаторами в целевой набор. 

Перенос ресурсов

Активация конфигурации пулов. 

Активация конфигурации из файла конфигурации по умолчанию. 

Активация конфигурации пулов

Проверка допустимости конфигурации пулов перед сохранением ее параметров. 

Проверка допустимости конфигурации пулов с выяснением результатов проверки. 

Проверка допустимости конфигурации перед сохранением ее параметров

Удаление конфигурации пулов из системы 

Все связанные ресурсы, например наборы процессоров, возвращаются в состояние по умолчанию. 

Удаление конфигурации пулов

Привязка процессов к пулу 

Связывание выполняющегося процесса с пулом ресурсов вручную. 

Связывание процессов с пулом

Привязка задач или проектов к пулу 

Связывание задач или проектов с пулом ресурсов. 

Связывание задач или проектов с пулом

Привязка новых процессов к пулу ресурсов 

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

Установка атрибута project.pool

Использование атрибутов project для привязки процесса к другому ресурсу.

Изменение привязки к пулам при запуске новых процессов. 

Использование атрибутов project для привязки процесса к другому пулу

Создание отчетов при помощи утилиты poolstat.

Создание серии отчетов с указанными интервалами. 

Создание нескольких отчетов с определенными интервалами

Вывод статистического отчета по набору ресурсов 

Для вывода статистического отчета по набору ресурсов pset используется средствоpoolstat.

Создание статистических отчетов о наборе ресурсов

Включение и отключение механизма пулов

Начиная с Solaris 10 11/06, службы пулов ресурсов и динамических пулов ресурсов можно включать и выключать с помощью команды svcadm, описанной на справочной странице svcadm(1M).

Команда pooladm, описанная на справочной странице pooladm(1M), позволяет выполнять следующие действия:


Примечание –

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


ProcedureSolaris 10 11/06 и более поздние версии: включение службы пулов ресурсов командой svcadm

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Включите службу пулов ресурсов.


    # svcadm enable system/pools:default
    

ProcedureSolaris 10 11/06 и более поздние версии: отключение службы пулов ресурсов командой svcadm

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Отключите службу пулов ресурсов.


    # svcadm disable system/pools:default
    

ProcedureSolaris 10 11/06 и более поздние версии: включение службы динамических пулов ресурсов командой svcadm

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления службами (Service Management).

    Роли содержат полномочия и привилегированные команды. Информацию относительно создания роли и ее назначения пользователю приведены в Configuring RBAC (Task Map) в System Administration Guide: Security ServicesManaging RBAC (Task Map) руководства Руководство по системному администрированию: службы безопасности.

  2. Включите службу динамических пулов ресурсов.


    # svcadm enable system/pools/dynamic:default
    

Пример 13–1 Зависимость службы динамических пулов ресурсов от службы пулов ресурсов

Как показывает этот пример, перед запуском динамических пулов ресурсов (DRP) следует сначала включить пулы ресурсов.

Между пулами ресурсов и динамическими пулами ресурсов существует зависимость. Служба DRP теперь зависит от пулов ресурсов. Существует возможность включения и отключения DRP отдельно от пулов ресурсов.

Из следующей экранной информации видно, что в настоящий момент отключены как пулы ресурсов, так и динамические пулы ресурсов:


# svcs *pool*
STATE          STIME    FMRI
disabled       10:32:26 svc:/system/pools/dynamic:default
disabled       10:32:26 svc:/system/pools:default

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


# svcadm enable svc:/system/pools/dynamic:default
# svcs -a | grep pool
disabled       10:39:00 svc:/system/pools:default
offline        10:39:12 svc:/system/pools/dynamic:default

Следует отметить, что служба DRP по-прежнему не активирована.

Для определения причины неактивности службы DRP используется параметр -x команды svcs:


# svcs -x *pool*
svc:/system/pools:default (resource pools framework)
 State: disabled since Wed 25 Jan 2006 10:39:00 AM GMT
Reason: Disabled by an administrator.
   See: http://sun.com/msg/SMF-8000-05
   See: libpool(3LIB)
   See: pooladm(1M)
   See: poolbind(1M)
   See: poolcfg(1M)
   See: poolstat(1M)
   See: /var/svc/log/system-pools:default.log
Impact: 1 dependent service is not running.  (Use -v for list.)

svc:/system/pools/dynamic:default (dynamic resource pools)
 State: offline since Wed 25 Jan 2006 10:39:12 AM GMT
Reason: Service svc:/system/pools:default is disabled.
   See: http://sun.com/msg/SMF-8000-GE
   See: poold(1M)
   See: /var/svc/log/system-pools-dynamic:default.log
Impact: This service is not running.

Включите службу пулов ресурсов для подготовки к запуску службы DRP:


# svcadm enable svc:/system/pools:default

В результате выполнения команды svcs *pool* выводится следующая информация:


# svcs *pool*
STATE          STIME    FMRI
online         10:40:27 svc:/system/pools:default
online         10:40:27 svc:/system/pools/dynamic:default


Пример 13–2 Влияние отключения службы пулов ресурсов на динамические пулы ресурсов

Если обе службы работают, и отключается служба пулов ресурсов:


# svcadm disable svc:/system/pools:default 

В результате выполнения команды svcs *pool* выводится следующая информация:


# svcs *pool*
STATE          STIME    FMRI
disabled       10:41:05 svc:/system/pools:default
online         10:40:27 svc:/system/pools/dynamic:default
# svcs *pool*
STATE          STIME    FMRI
disabled       10:41:05 svc:/system/pools:default
online         10:40:27 svc:/system/pools/dynamic:default

Однако, в конечном счете, служба DRP переходит в состояние offline, поскольку служба пулов ресурсов отключена:


# svcs *pool*
STATE          STIME    FMRI
disabled       10:41:05 svc:/system/pools:default
offline        10:41:12 svc:/system/pools/dynamic:default

Выясните причину неактивности службы DRP:


# svcs -x *pool*
svc:/system/pools:default (resource pools framework)
 State: disabled since Wed 25 Jan 2006 10:41:05 AM GMT
Reason: Disabled by an administrator.
   See: http://sun.com/msg/SMF-8000-05
   See: libpool(3LIB)
   See: pooladm(1M)
   See: poolbind(1M)
   See: poolcfg(1M)
   See: poolstat(1M)
   See: /var/svc/log/system-pools:default.log
Impact: 1 dependent service is not running.  (Use -v for list.)

svc:/system/pools/dynamic:default (dynamic resource pools)
 State: offline since Wed 25 Jan 2006 10:41:12 AM GMT
Reason: Service svc:/system/pools:default is disabled.
   See: http://sun.com/msg/SMF-8000-GE
   See: poold(1M)
   See: /var/svc/log/system-pools-dynamic:default.log
Impact: This service is not running.

Для работы DRP требуется запуск пулов ресурсов. Пулы ресурсов можно запустить, например, командой pooladm с параметром -e:


# pooladm -e

Теперь в результате выполнения команды svcs *pool* выводится следующая информация:


# svcs *pool*
STATE          STIME    FMRI
online         10:42:23 svc:/system/pools:default
online         10:42:24 svc:/system/pools/dynamic:default

ProcedureSolaris 10 11/06 и более поздние версии: отключение службы динамических пулов ресурсов командой svcadm

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Отключите службу динамических пулов ресурсов.


    # svcadm disable system/pools/dynamic:default
    

ProcedureВключение пулов ресурсов командой pooladm

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Включите механизм управления пулами.


    # pooladm -e
    

ProcedureОтключения пулов ресурсов командой pooladm

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Отключите механизм управления пулами.


    # pooladm -d
    

Настройка пулов

ProcedureСоздание статической конфигурации

С помощью команды -s с параметром /usr/sbin/pooladm создайте файл статической конфигурации, совпадающей с текущей динамической конфигурацией. Если не указано другое имя файла, используется местоположение по умолчанию /etc/pooladm.conf .

Зафиксируйте конфигурацию командой pooladm с параметром -c. После этого статическую конфигурацию следует привести в соответствие с динамической конфигурацией командой pooladm с параметром -s.


Примечание –

Новые функциональные возможности команды pooladm -s, являются предпочтительными по сравнению с ранее использовавшимися функциональными возможностями команды poolcfg -c discover для создания новой конфигурации, совпадающей с динамической конфигурацией.


Перед началом работы

Включите пулы в системе.

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Обновите файл статической конфигурации в соответствии с текущей динамической конфигурацией.


    # pooladm -s
    
  3. Выведите содержимое файла конфигурации в удобной для чтения форме.

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


    # poolcfg -c info
    system tester
            string  system.comment
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
  4. Зафиксируйте конфигурацию в /etc/pooladm.conf .


    # pooladm -c
    
  5. (Дополнительно) Для копирования динамической конфигурации в файл статической /tmp/backup используется следующая команда:


    # pooladm -s /tmp/backup
    

ProcedureИзменение конфигурации

Для расширения конфигурации создайте набор процессоров с названием pset_batch и пул с названием pool_batch. Затем свяжите пул и набор процессоров.

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

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Создайте набор процессоров pset_batch.


    # poolcfg -c 'create pset pset_batch (uint pset.min = 2; uint pset.max = 10)'
    
  3. Создайте пул pool_batch.


    # poolcfg -c 'create pool pool_batch'
    
  4. Свяжите пул с набором процессоров.


    # poolcfg -c 'associate pool pool_batch (pset pset_batch)'
    
  5. Проверьте измененную конфигурацию.


    # poolcfg -c info
    system tester
            string  system.comment kernel state
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
    
            pool pool_batch
                    boolean pool.default false
                    boolean pool.active true
                    int pool.importance 1
                    string pool.comment
                    pset pset_batch
    
            pset pset_batch
                    int pset.sys_id -2
                    string pset.units population
                    boolean pset.default true
                    uint pset.max 10
                    uint pset.min 2
                    string pset.comment
                    boolean pset.escapable false
                    uint pset.load 0
                    uint pset.size 0
    
                    cpu
                            int     cpu.sys_id 5
                            string  cpu.comment
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 4
                            string  cpu.comment
                            string  cpu.status on-line
  6. Зафиксируйте конфигурацию в /etc/pooladm.conf .


    # pooladm -c
    
  7. (Дополнительно) Для копирования динамической конфигурации в файл статической конфигурации /tmp/backup используется следующая команда:


    # pooladm -s /tmp/backup
    

ProcedureСвязывание пула с классом планирования

Если пул связывается с классом планирования, указанный планировщик используется для всех процессов, привязанных к пулу. Для этого в свойстве pool.scheduler указывается имя планировщика. В этом примере пул pool_batch связывается с планировщиком долевого распределения (FSS).

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Информацию относительно создания роли и назначения роли пользователю приведены в разделе "Managing RBAC (Task Map)" руководства Руководство по системному администрированию: службы безопасности.

  2. Измените пул pool_batch и свяжите его с FSS.


    # poolcfg -c 'modify pool pool_batch (string pool.scheduler="FSS")'
    
  3. Проверьте измененную конфигурацию.


    # poolcfg -c info
    system tester
            string  system.comment
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
    
            pool pool_batch
                    boolean pool.default false
                    boolean pool.active true
                    int pool.importance 1
                    string pool.comment
                    string pool.scheduler FSS
                    pset batch
    
            pset pset_batch
                    int pset.sys_id -2
                    string pset.units population
                    boolean pset.default true
                    uint pset.max 10
                    uint pset.min 2
                    string pset.comment
                    boolean pset.escapable false
                    uint pset.load 0
                    uint pset.size 0
    
                    cpu
                            int     cpu.sys_id 5
                            string  cpu.comment
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 4
                            string  cpu.comment
                            string  cpu.status on-line
  4. Зафиксируйте конфигурацию в /etc/pooladm.conf :


    # pooladm -c
    
  5. (Дополнительно) Для копирования динамической конфигурации в файл статической /tmp/backup используется следующая команда:


    # pooladm -s /tmp/backup
    

ProcedureНастройка ограничений конфигурации

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

В следующих примерах cpuid является целым числом.

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Измените свойство cpu.pinned в статической или динамической конфигурации.

    • Измените конфигурацию начальной загрузки (статическую):


      # poolcfg -c 'modify cpu <cpuid> (boolean cpu.pinned = true)'
      
    • Измените текущую (динамическую) конфигурацию без изменения конфигурации начальной загрузки:


      # poolcfg -dc 'modify cpu <cpuid> (boolean cpu.pinned = true)'
      

ProcedureОпределение целевых показателей конфигурации

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

В следующей процедуре значение целевого показателя wt-load заставляет демон poold сопоставлять распределение ресурсов с их использованием. Целевой показатель locality отключен, что упростит достижение указанной цели.

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Измените системный параметр tester, чтобы присвоить более высокий приоритет целевому показателю wt-load.


    # poolcfg -c 'modify system tester (string system.poold.objectives="wt-load")'
    
  3. Отключите целевой показатель locality для набора процессоров по умолчанию.


    # poolcfg -c 'modify pset pset_default (string pset.poold.objectives="locality none")'one line
    
  4. Отключите целевой показатель locality для набора процессоров pset_batch.


    # poolcfg -c 'modify pset pset_batch (string pset.poold.objectives="locality none")'one line
    
  5. Проверьте измененную конфигурацию.


    # poolcfg -c info
    system tester
            string  system.comment
            int     system.version 1
            boolean system.bind-default true
            int     system.poold.pid 177916
            string  system.poold.objectives wt-load
    
            pool pool_default
                    int     pool.sys_id 0
                    boolean pool.active true
                    boolean pool.default true
                    int     pool.importance 1
                    string  pool.comment 
                    pset    pset_default
    
            pset pset_default
                    int     pset.sys_id -1
                    boolean pset.default true
                    uint    pset.min 1
                    uint    pset.max 65536
                    string  pset.units population
                    uint    pset.load 10
                    uint    pset.size 4
                    string  pset.comment 
                    boolean testnullchanged true
                    string  pset.poold.objectives locality none
    
                    cpu
                            int     cpu.sys_id 3
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 2
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 1
                            string  cpu.comment 
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 0
                            string  cpu.comment 
                            string  cpu.status on-line
    
            pool pool_batch
                    boolean pool.default false
                    boolean pool.active true
                    int pool.importance 1
                    string pool.comment
                    string pool.scheduler FSS
                    pset batch
    
            pset pset_batch
                    int pset.sys_id -2
                    string pset.units population
                    boolean pset.default true
                    uint pset.max 10
                    uint pset.min 2
                    string pset.comment
                    boolean pset.escapable false
                    uint pset.load 0
                    uint pset.size 0
                    string  pset.poold.objectives locality none
    
                    cpu
                            int     cpu.sys_id 5
                            string  cpu.comment
                            string  cpu.status on-line
    
                    cpu
                            int     cpu.sys_id 4
                            string  cpu.comment
                            string  cpu.status on-line
  6. Зафиксируйте конфигурацию в /etc/pooladm.conf .


    # pooladm -c
    
  7. (Дополнительно) Для копирования динамической конфигурации в файл статической /tmp/backup используется следующая команда:


    # pooladm -s /tmp/backup
    

ProcedureНастройки уровня журналирования poold

Уровень регистрационной информации, генерируемой демоном poold, задается в виде свойства system.poold.log-level в конфигурации poold. Конфигурация poold содержится в конфигурации libpool. Для получения дополнительной информации см. Информация журналирования poold и справочные страницы poolcfg(1M) и libpool(3LIB).

Также для указания уровня регистрационной информации, генерируемой демоном poold, может использоваться команда poold, вызываемая из командной строки.

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Уровень журналирования настраивается командой poold с параметром-l и дополнительным параметром (например, INFO).


    # /usr/lib/pool/poold -l INFO
    

    Для получения информации о доступных параметрах см. Информация журналирования poold. Значение по умолчанию для уровня журналирования – NOTICE.

ProcedureИспользование командных файлов совместно с командой poolcfg

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

Следует отметить, что символ # в командных файлах означает, что остальная часть строки является комментарием.

  1. Создайте входной файл poolcmds.txt .


    $ cat > poolcmds.txt
    create system tester
    create pset pset_batch (uint pset.min = 2; uint pset.max = 10)
    create pool pool_batch
    associate pool pool_batch (pset pset_batch)
    
  2. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Информацию относительно создания роли и назначения роли пользователю приведены в разделе "Managing RBAC" руководства Руководство по системному администрированию: службы безопасности.

  3. Выполните команду:


    # /usr/sbin/poolcfg -f poolcmds.txt
    

Перенос ресурсов

Для переноса ресурсов в ядре используется аргумент подкоманды transfer параметра -c команды poolcfg с параметром -d. Параметр -d означает, что команда работает непосредственно с ядром и не получает входные данные из файла.

Следующая процедура позволяет переместить два ЦП из набора процессоров pset1 в набор процессоров pset2 в ядре.

ProcedureПеренос процессоров между наборами процессоров

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Переместите два ЦП из pset1 в pset2.

    Элементы выражения from и to могут указываться в любом порядке. Поддерживается только одна пара to и from на команду.


    # poolcfg -dc 'transfer 2 from pset pset1 to pset2'
    

Пример 13–3 Альтернативный метод переноса ЦП между наборами процессоров

Если требуется выполнить перенос конкретных идентификаторов типа ресурса, можно воспользоваться альтернативным синтаксисом. Например, следующая команда присваивает два процессора с идентификаторами 0 и 2 набору процессоров pset_large:


# poolcfg -dc "transfer to pset pset_large (cpu 0; cpu 2)"

Поиск и устранение отказов

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

Активация и удаление конфигураций пулов

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

ProcedureАктивация конфигурации пулов

Для активации конфигурации из файла конфигурации по умолчанию /etc/pooladm.conf используется команда pooladm с параметром -c – "применить конфигурацию".

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Зафиксируйте конфигурацию в /etc/pooladm.conf .


    # pooladm -c
    
  3. (Дополнительно) Скопируйте динамическую конфигурацию в файл статической конфигурации, например /tmp/backup.


    # pooladm -s /tmp/backup
    

ProcedureПроверка допустимости конфигурации перед сохранением ее параметров

Для выяснения результатов проверки допустимости можно использовать параметр -n с параметром -c. Фактического сохранения параметров конфигурации не происходит.

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

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Перед сохранением параметров конфигурации ее следует проверить на допустимость.


    # pooladm -n -c /home/admin/newconfig
    

ProcedureУдаление конфигурации пулов

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

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Удалите текущую активную конфигурацию.


    # pooladm -x
    

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

Комбинирование классов планирования внутри набора процессоров

Допускается комбинирование процессов с классами планирования TS и IA в одном наборе процессоров. Комбинирование других классов планирования внутри одного набора процессоров может привести к непредсказуемым последствиям. Если в результате выполнения команды pooladm -x в рамках одного набора процессоров оказываются процессы с разными классами планирования, вынести выполняющиеся процессы в другой класс планирования можно командой priocntl. См. Перенос процессов из класса TS в класс FSS вручную. Также см. справочную страницу priocntl(1).

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

Для связывания пула ресурсов с проектом служит атрибут project.pool.

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

ProcedureСвязывание процессов с пулом

В следующей процедуре используется команда poolbind с параметром -p , позволяющая вручную связать процесс (в данном случае текущую оболочку) с пулом ohare.

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Свяжите процесс с пулом вручную:


    # poolbind -p ohare $$
    
  3. Проверьте привязку процесса к пулу командой poolbind с параметром -q.


    $ poolbind -q $$
    155509 ohare

    Выводится идентификатор процесса и привязка к пулу.

ProcedureСвязывание задач или проектов с пулом

Для привязки задач или проектов к пулу используется команда poolbind с параметром -i. В следующем примере все процессы в проекте airmiles связываются с пулом laguardia.

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Свяжите все процессы в проекте airmiles с пулом laguardia.


    # poolbind -i project -p laguardia airmiles
    

ProcedureУстановка атрибута project.pool

Атрибут project.pool позволяет выполнить привязку процессов проекта к пулу ресурсов.

  1. Перейдите в режим суперпользователя или воспользуйтесь ролью, включающей в себя профиль управления процессами (Process Management).

    Профиль управления процессами входит в роль системного администратора (System Administrator). Для получения дополнительной информации о ролях см. Using the Solaris Management Tools With RBAC (Task Map) в System Administration Guide: Basic Administration.

  2. Добавьте атрибут project.pool к каждой записи в базе данных project.


    # projmod -a -K project.pool=poolname project
    

ProcedureИспользование атрибутов project для привязки процесса к другому пулу

Предположим, существует конфигурация с двумя пулами – studio и backstage. В файле /etc/project содержатся следующие данные:


user.paul:1024::::project.pool=studio
user.george:1024::::project.pool=studio
user.ringo:1024::::project.pool=backstage
passes:1027::paul::project.pool=backstage

В этой конфигурации процессы, запущенные пользователем paul, по умолчанию связываются с пулом studio.

Пользователь paul может изменять привязку к пулу для запускаемых им проектов. Пользователь paul может также выполнять привязку к пулу backstage командой newtask в рамках проекта passes.

  1. Запустите процесс в проекте passes.


    $ newtask -l -p passes
    
  2. Для проверки правильности привязки проекта можно воспользоваться командой poolbind с параметром -q. Для передачи в команду номера процесса родительской оболочки используется двойной знак доллара ($$).


    $ poolbind -q $$
    6384  pool backstage

    Выводится идентификатор процесса и привязка к пулу.

Вывод статистических отчетов по ресурсам, связанным с пулами, с помощью команды poolstat

Команда poolstat позволяет вывести статистические данные по ресурсам, связанным с пулом. Для получения дополнительной информации см. Наблюдение за механизмом пулов и степени использования ресурсов командой poolstat и справочную страницу poolstat(1M).

В следующих подразделах приводятся примеры создания отчетов в различных целях.

Вывод результатов poolstat по умолчанию

По команде poolstat без аргументов выводится строка заголовка и по одной строке информации для каждого пула. В строке информации отображается идентификатор пула, имя пула и статистика по ресурсам набора процессоров, присоединенного к пулу.


machine% poolstat
                              pset
       id pool           size used load
        0 pool_default      4  3.6  6.2
        1 pool_sales        4  3.3  8.4

Создание нескольких отчетов с определенными интервалами

Следующая команда создает три отчета с 5-секундным интервалом выборки.


machine% poolstat 5 3
                               pset
 id pool                 size used load
 46 pool_sales              2  1.2  8.3
  0 pool_default            2  0.4  5.2
                              pset
 id pool                 size used load
 46 pool_sales              2  1.4  8.4
  0 pool_default            2  1.9  2.0
                              pset
 id pool                 size used load
 46 pool_sales              2  1.1  8.0
  0 pool_default            2  0.3  5.0  

Создание статистических отчетов о наборе ресурсов

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


machine% poolstat -r pset
      id pool          type rid rset          min  max size used load
       0 pool_default  pset  -1 pset_default    1  65K    2  1.2  8.3
       6 pool_sales    pset   1 pset_sales      1  65K    2  1.2  8.3
       2 pool_other    pset  -1 pset_default    1  10K    2  0.4  5.2