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

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

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