Guia de administração do sistema: gerenciamento de recursos Oracle Solaris Containers e Oracle Solaris Zones

Capítulo 13 Criação e administração de grupos de recursos (tarefas)

Este capítulo descreve como configurar e administrar grupos de recursos no sistema.

Para obter informações complementares sobre grupos de recursos, consulte o Capítulo 12Grupos de recursos (visão geral).

Administração de grupos de recursos dinâmicos (mapa de tarefas)

Tarefa 

Descrição 

Para instruções 

Ativar ou desativar grupos de recursos. 

Ativar ou desativar grupos de recursos no sistema. 

Ativação e desativação da facilidade de grupos

Ativar ou desativar grupos de recursos dinâmicos. 

Ativar ou desativar facilidades de grupos de recursos dinâmicos no sistema. 

Ativação e desativação da facilidade de grupos

Crie uma configuração de grupos de recursos estáticos. 

Crie um arquivo de configuração estática que coincida com a configuração dinâmica atual. Para obter informações, consulte Estrutura de grupos de recursos.

Como criar uma configuração estática

Modifique uma configuração de grupos de recursos. 

Revise uma configuração de grupos no sistema, por exemplo criando grupos adicionais. 

Como modificar uma configuração

Associe um grupo de recursos a uma classe de agendamento. 

Associe um grupo a uma classe de agendamento para que todos os processos vinculados ao grupo usem o agendador especificado. 

Como associar um grupo a uma classe de agendamento

Defina restrições de configuração e objetivos de configuração. 

Especifique objetivos para poold a serem considerados ao tomar uma ação corretiva. Para obter mais informações sobre objetivos de configuração, consulte Visão geral de poold.

Como definir restrições de configuração e Como definir objetivos de configuração

Defina o nível de registro. 

Especifique o nível de informações de registro geradas por poold.

Como definir o nível de registro de poold

Use um arquivo de texto com o comando poolcfg.

O comando poolcfg pode obter entrada de um arquivo de texto.

Como usar arquivos de comando com poolcfg

Transfira recursos no kernel. 

Transfira recursos no kernel. Por exemplo, transferir recursos com IDs específicos para um conjunto de destino. 

Transferência de recursos

Ative uma configuração de grupo. 

Ative a configuração no arquivo de configuração padrão. 

Como ativar uma configuração de grupo

Valide uma configuração de grupo antes de comprometer a configuração. 

Valide uma configuração de grupo para testar o que acontecerá quando a validação ocorrer. 

Como validar uma configuração antes de comprometê-la

Remova do sistema uma configuração de grupo. 

Todos os recursos associados, como conjuntos de processadores, são retornados para o status padrão. 

Como remover uma configuração de grupo

Vincule processos a um grupo. 

Associe manualmente um processo em execução no sistema a um grupo de recursos. 

Como vincular processos a um grupo

Vincule tarefas ou projetos a um grupo. 

Associe tarefas ou projetos a um grupo de recursos. 

Como vincular tarefas ou projetos a um grupo

Vincule novos processos a um grupo de recursos. 

Para vincular automaticamente novos processos em um projeto a um determinado grupo, adiciona um atributo a cada entrada no banco de dados de project.

Como definir o atributo project.pool para um projeto

Use atributos project para vincular um processo a um grupo diferente.

Modifique a vinculação de grupos para novos processos que são iniciados. 

Como usar atributos de project para vincular um processo a um grupo diferente

Use o utilitário poolstat para produzir relatórios.

Produza vários relatórios a intervalos específicos. 

Produção de vários relatórios a intervalos específicos

Relate estatísticas de conjunto de recursos. 

Use o utilitário poolstat para relatar estatísticas para um conjunto de recursos pset.

Relato de estatísticas de conjunto de recursos

Ativação e desativação da facilidade de grupos

A partir da versão Solaris 10 11/06, você pode ativar e desativar serviços de grupos de recursos e grupos de recursos dinâmicos no sistema usando o comando svcadm, descrito na página do manual svcadm(1M).

Você também pode usar o comando pooladm, descrito na página do manual pooladm(1M), para executar as seguintes tarefas:


Observação –

Quando o sistema é atualizado, se a estrutura de grupos de recursos estiver ativada e um arquivo /etc/pooladm.conf existir, o serviço de grupos será ativado e a configuração contida no arquivo será aplicada ao sistema.


ProcedureSolaris 10 11/06 e posterior: como ativar o serviço de grupos de recursos usando svcadm

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Ative o serviço de grupos de recursos.


    # svcadm enable system/pools:default
    

ProcedureSolaris 10 11/06 e posterior: como desativar o serviço de grupos de recursos usando svcadm

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Desative o serviço de grupos de recursos.


    # svcadm disable system/pools:default
    

ProcedureSolaris 10 11/06 e posterior: como ativar o serviço de grupos de recursos dinâmicos usando svcadm

  1. Torne-se superusuário ou assuma uma função que inclua o perfil de direitos Gerenciamento de serviço.

    Funções contêm autorizações e comandos privilegiados. Para obter informações sobre como criar a função e atribuir a função a um usuário, consulte Configuring RBAC (Task Map) no System Administration Guide: Security Services Managing RBAC (Task Map) no System Administration Guide: Security Services.

  2. Ative o serviço de grupos de recursos dinâmicos.


    # svcadm enable system/pools/dynamic:default
    

Exemplo 13–1 Dependência do serviço de grupos de recursos dinâmicos no serviço de grupos de recursos

Este exemplo mostra que você deve primeiro ativar grupos de recursos, se desejar executar DRP.

Há uma dependência entre grupos de recursos e grupos de recursos dinâmicos. DRP agora é um serviço dependente de grupos de recursos. DRP pode ser ativado e desativado independentemente dos grupos de recursos.

A exibição a abaixo mostra que grupos de recursos e grupos de recursos dinâmicos estão desativados atualmente:


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

Ative grupos de recursos dinâmicos:


# 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

Observe que o serviço DRP ainda está off-line.

Use a opção -x do comando svcs para determinar por que o serviço DRP está off-line:


# 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.

Ative o serviço de grupos de recursos para que o serviço DRP possa ser executado:


# svcadm enable svc:/system/pools:default

Quando o comando svcs *pool* é usado, o sistema exibe:


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


Exemplo 13–2 Efeito nos grupos de recursos dinâmicos quando o serviço de grupos de recursos está desativado

Se os dois serviços estiverem on-line e você desativar o serviço de grupos de recursos:


# svcadm disable svc:/system/pools:default 

Quando o comando svcs *pool* é usado, o sistema exibe:


# 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

Mas no fim o serviço DRP passa para offline porque o serviço de grupos de recursos foi desativado:


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

Determine por que o serviço DRP está off-line:


# 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.

Grupos de recursos devem ser iniciados para DRP funcionar. Por exemplo, grupos de recursos podem ser iniciados usando-se o comando pooladm com a opção -e:


# pooladm -e

Em seguida o comando svcs *pool* exibe:


# 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 e posterior: como desativar o serviço de grupos de recursos dinâmicos usando svcadm

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Desativa o serviço de grupos de recursos dinâmicos.


    # svcadm disable system/pools/dynamic:default
    

ProcedureComo ativar grupos de recursos usando pooladm

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Ative a facilidade de grupos.


    # pooladm -e
    

ProcedureComo desativar grupos de recursos usando pooladm

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Desative a facilidade de grupos.


    # pooladm -d
    

Configuração de grupos

ProcedureComo criar uma configuração estática

Use a -s opção /usr/sbin/pooladm para criar um arquivo de configuração estática que coincida com a configuração dinâmica atual. A menos que um nome de arquivo diferente seja especificado, o local padrão /etc/pooladm.conf é usado.

Comprometa a configuração usando o comando pooladm com a opção -c. Em seguida, use o comando pooladm com a opção -s para atualizar a configuração estática, de modo que coincida com o estado da configuração dinâmica.


Observação –

A nova funcionalidade pooladm -s é preferida à funcionalidade anterior poolcfg -c discover para criar uma nova configuração que coincida com a configuração dinâmica.


Antes de começar

Ative grupos no sistema.

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Atualize o arquivo de configuração estática para coincidir com a configuração dinâmica atual.


    # pooladm -s
    
  3. Visualize o conteúdo do arquivo de configuração em uma forma legível.

    Observe que a configuração contém elementos padrão criados pelo sistema.


    # 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. Comprometa a configuração em /etc/pooladm.conf .


    # pooladm -c
    
  5. (Opcional) Para copiar a configuração dinâmica para um arquivo de configuração estática chamado /tmp/backup, digite o seguinte:


    # pooladm -s /tmp/backup
    

ProcedureComo modificar uma configuração

Para otimizar a configuração, crie um conjunto de processadores nomeado pset_batch e um grupo nomeado pool_batch. Em seguida una o grupo e o conjunto de processados com uma associação.

Observe que você deve usar argumentos de subcomando que contenham espaço em branco.

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Crie o conjunto de processadores pset_batch.


    # poolcfg -c 'create pset pset_batch (uint pset.min = 2; uint pset.max = 10)'
    
  3. Crie o grupo pool_batch.


    # poolcfg -c 'create pool pool_batch'
    
  4. Una o grupo e o conjunto de processadores com uma associação.


    # poolcfg -c 'associate pool pool_batch (pset pset_batch)'
    
  5. Exiba a configuração editada.


    # 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. Comprometa a configuração em /etc/pooladm.conf .


    # pooladm -c
    
  7. (Opcional) Para copiar a configuração dinâmica para um arquivo de configuração estática nomeado /tmp/backup, digite o seguinte:


    # pooladm -s /tmp/backup
    

ProcedureComo associar um grupo a uma classe de agendamento

Você pode associar um grupo a uma classe de agendamento para que todos os processos vinculados a esse grupo usem este agendador. Para isso, defina a propriedade pool.scheduler como o nome do agendador. Este exemplo associa o grupo pool_batch ao fair share scheduler (FSS).

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter informações sobre como criar a função e atribuí-la a um usuário, consulte Gerenciamento de RBAC (mapa de tarefas) em Guia de administração de sistema: serviços de segurança.

  2. Modifique o grupo pool_batch para ser associado ao FSS.


    # poolcfg -c 'modify pool pool_batch (string pool.scheduler="FSS")'
    
  3. Exiba a configuração editada.


    # 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. Comprometa a configuração em /etc/pooladm.conf :


    # pooladm -c
    
  5. (Opcional) Para copiar a configuração dinâmica para um arquivo de configuração estática chamado /tmp/backup, digite o seguinte:


    # pooladm -s /tmp/backup
    

ProcedureComo definir restrições de configuração

Restrições afetam a gama de configurações possíveis eliminando algumas das alterações potenciais que podem ser feitas em uma configuração. Este procedimento mostra como definir a propriedade cpu.pinned.

Nos exemplos abaixo, cpuid é um inteiro.

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Modifique a propriedade cpu.pinned na configuração estática ou dinâmica:

    • Modifique a configuração de tempo de inicialização (estática):


      # poolcfg -c 'modify cpu <cpuid> (boolean cpu.pinned = true)'
      
    • Modifique a configuração de execução (dinâmica) sem modificar a configuração de tempo de inicialização:


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

ProcedureComo definir objetivos de configuração

Você pode especificar objetivos para poold a serem considerados ao tomar uma ação corretiva.

No procedimento abaixo, o objetivo wt-load está sendo definido de modo que poold tente coincidir a alocação de recursos com a utilização de recursos. O objetivo locality é desativado para auxiliar na realização do objetivo desta configuração.

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Modifique tester do sistema para favorecer o objetivo wt-load.


    # poolcfg -c 'modify system tester (string system.poold.objectives="wt-load")'
    
  3. Desative o objetivo locality para o conjunto de processadores padrão.


    # poolcfg -c 'modify pset pset_default (string pset.poold.objectives="locality none")'
    
  4. Desative o objetivo locality para o conjunto de processadores pset_batch.


    # poolcfg -c 'modify pset pset_batch (string pset.poold.objectives="locality none")'
    
  5. Exiba a configuração editada.


    # 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. Comprometa a configuração em /etc/pooladm.conf .


    # pooladm -c
    
  7. (Opcional) Para copiar a configuração dinâmica para um arquivo de configuração estática chamado /tmp/backup, digite o seguinte:


    # pooladm -s /tmp/backup
    

ProcedureComo definir o nível de registro de poold

Para especificar o nível de informações de registro que poold gera, defina a propriedade system.poold.log-level na configuração de poold. A configuração de poold é contida na configuração de libpool. Para obter informações, consulte Informações de registro do poold e as páginas do manual poolcfg(1M) e libpool(3LIB).

Você também pode usar o comando poold na linha de comando para especificar o nível de informações de registro que poold gera.

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Defina o nível de registro usando o comando poold com a opção with the -l e um parâmetro, por exemplo, INFO.


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

    Para obter informações sobre parâmetros disponíveis, consulte Informações de registro do poold. O nível de registro padrão é NOTICE.

ProcedureComo usar arquivos de comando com poolcfg

O comando poolcfg com a opção -f pode tomar entrada de um arquivo de texto que contenha argumentos do subcomando poolcfg para a opção -c. Este método é apropriado quando você deseja que um conjunto de operações seja executado. Quando vários comando são processados, a configuração é somente atualizada se todos os comandos tiverem êxito. Para configurações grandes ou complexas, esta técnica pode ser mais útil do que chamadas por subcomando.

Observe que, em arquivos de comando, o caractere # atua como uma marca de comentário para o resto da linha.

  1. Crie um arquivo de entrada 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. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter informações sobre como criar a função e atribuí-la a um usuário, consulte “Gerenciamento de RBAC” no Guia de administração de sistema: serviços de segurança.

  3. Execute o comando:


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

Transferência de recursos

Use o argumento do subcomando transfer para a opção -c de poolcfg com a opção -d para transferir recursos no kernel. A opção -d especifica que o comando opere diretamente no kernel e não tome entrada de um arquivo.

O procedimento abaixo move duas CPUs do conjunto de processadores pset1 para o conjunto de processadores pset2 no kernel.

ProcedureComo mover CPUs entre conjuntos de processadores

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Mova duas CPUs de pset1 para pset2.

    As subcláusulas from e to podem ser usadas em qualquer ordem. Somente uma subclásula to e fromtem suporte do comando.


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

Exemplo 13–3 Método alternativo para mover CPUs entre conjuntos de processadores

Se IDs específicos conhecidos de um tipo de recurso tiverem de ser transferidos, uma sintaxe alternativa será fornecida. Por exemplo, o seguinte comando atribui duas CPUs com IDs 0 e 2 ao conjunto de processadores pset_large:


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

Solução de problemas

Se uma transferência falhar porque não há recursos suficientes para atender a solicitação ou porque os IDs específicos não podem ser localizados, o sistema exibirá uma mensagem de erro.

Ativação e remoção de configurações de grupos

Use o comando pooladm para tornar ativa uma determinada configuração de grupo para remover a configuração de grupo atualmente ativa. Para obter mais informações este comando, consulte a página do manual pooladm(1M).

ProcedureComo ativar uma configuração de grupo

Para ativar a configuração no arquivo de configuração padrão, /etc/pooladm.conf, chame pooladm com a opção -c, “comprometa a configuração.”

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Comprometa a configuração em /etc/pooladm.conf .


    # pooladm -c
    
  3. (Opcional) Copie a configuração dinâmica para um arquivo de configuração estática, por exemplo, /tmp/backup.


    # pooladm -s /tmp/backup
    

ProcedureComo validar uma configuração antes de comprometê-la

Você pode usar a opção -n com a opção -c para testar o que acontecerá quando ocorrer a validação. A configuração não será realmente comprometida.

O comando abaixo tenta validar a configuração contida em /home/admin/newconfig. Quaisquer erros encontrados são exibidos, mas a configuração propriamente dita não é modificada.

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Teste a validade da configuração antes de comprometê-la.


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

ProcedureComo remover uma configuração de grupo

Para remover a atual configuração ativa e retornar todos os recursos associados, como conjuntos de processadores, para o status padrão, use a opção -x para “remover a configuração.”

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Remova a atual configuração ativa.


    # pooladm -x
    

    A opção - x para pooladm remove da configuração dinâmica todos os elementos definidos pelo usuário. Todos os recursos são revertidos para os estados padrão, e todas as vinculações de grupos são substituídas por um vínculo com o grupo padrão.

Mescla de classes de agendamento dentro de um conjunto de processadores

Você pode mesclar processos com segurança nas classes TS e IA no mesmo conjunto de processadores. A mescla de outras classes de agendamento dentro de um conjunto de processadores pode levar a resultados imprevisíveis. Se o uso de pooladm -x resultar em classes de agendamento mescladas dentro de um conjunto de processadores, use o comando priocntl para mover processos em execução para uma classe de agendamento diferente. Consulte Como mover manualmente processos da classe TS para a classe FSS Consulte também a página do manual priocntl(1).

Definição de atributos de grupos e vinculação a um grupo

Você pode definir um atributo project.pool para associar um grupo de recursos a um projeto.

Você pode vincular um processo em execução a um grupo de duas maneiras:

ProcedureComo vincular processos a um grupo

O procedimento abaixo usar poolbind com a opção -p para vincular manualmente um processo (neste caso, o shell atual) a um grupo nomeado ohare.

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Vincule manualmente um processo a um grupo:


    # poolbind -p ohare $$
    
  3. Verifique a vinculação do grupo para o processo usando poolbind com a opção -q.


    $ poolbind -q $$
    155509 ohare

    O sistema exibe o ID do processo e a vinculação do grupo.

ProcedureComo vincular tarefas ou projetos a um grupo

Para vincular tarefas ou projetos a um grupo, use o comando poolbind com a opção -i. O exemplo abaixo vincula todos os processos no projeto airmiles ao grupo laguardia.

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Vincule todos os processos no projeto airmiles ao grupo laguardia.


    # poolbind -i project -p laguardia airmiles
    

ProcedureComo definir o atributo project.pool para um projeto

Você pode definir o atributo project.pool para vincular processos de um projeto a um grupo de recursos.

  1. Torne-se superusuário ou assuma uma função que inclua o perfil Gerenciamento de processo.

    A função Administrador de sistema inclui o perfil Gerenciamento de processo. Para obter mais informações sobre funções, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Adicione um atributo project.pool a cada entrada no banco de dados de project.


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

ProcedureComo usar atributos de project para vincular um processo a um grupo diferente

Suponha que você tem uma configuração com dois grupos nomeados studio e backstage. O arquivo /etc/project tem o seguinte conteúdo:


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

Com esta configuração, processos que são iniciados pelo usuário paul são vinculados por padrão ao grupo studio.

O usuário paul pode modificar a vinculação de grupo para processos que ele inicia. paul pode usar newtask para vincular trabalho ao grupo backstage também, iniciando o projeto passes.

  1. Inicie um processo no projeto passes.


    $ newtask -l -p passes
    
  2. Use o comando poolbind com a opção -q para verificar a vinculação do grupo para o processo. Use também um cifrão duplo ($$) para passar o número do processo do shell pai para o comando.


    $ poolbind -q $$
    6384  pool backstage

    O sistema exibe o ID do processo e a vinculação do grupo.

Uso de poolstat para relatar estatísticas para recursos relacionados a grupos

O comando poolstat é usado para exibir estatísticas para recursos relacionados a grupos. Para obter mais informações, consulte Uso de poolstat para monitorar a facilidade de grupos e a utilização de recursos e a página do manual poolstat(1M).

As subseções a seguir usam exemplos para ilustrar como produzir relatórios para propósitos específicos.

Exibição da saída padrão de poolstat

A digitação de poolstat sem argumentos envia uma linha de cabeçalho e uma linha de informação para cada grupo. A linha de informação mostra o ID do grupo, o nome do grupo e as estatísticas de recursos para o conjunto de processadores anexado ao grupo.


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

Produção de vários relatórios a intervalos específicos

O comando a seguir produz três relatórios a intervalos de amostragem de 5 segundos.


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  

Relato de estatísticas de conjunto de recursos

O exemplo abaixo usa o comando poolstat com a opção -r para relatar estatísticas para o conjunto de recursos do conjunto de processadores. Observe que o conjunto de recursos pset_default é anexado a mais de um grupo, de modo que este conjunto de processadores é listado uma vez para cada membro do grupo.


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