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

Configuração de restrições e objetivos

Ao se fazer alterações em uma configuração, poold atua nas direções que você fornece. Você especifica essas direções como uma série de restrições e objetivos. O poold usa suas especificações para determinar o valor relativo de diferentes possibilidades de configuração em relação à configuração existente. O poold em seguida altera as atribuições de recursos da configuração atual para gerar novas configurações candidatas.

Restrições de configuração

Restrições afetam a gama de configurações possíveis eliminando algumas das alterações potenciais que poderiam ser feitas em uma configuração. As restrições a seguir, que são especificadas na configuração libpool, estão disponíveis.

Para obter mais informações sobre propriedades de grupos, consulte a página do manual libpool(3LIB) e Propriedades de grupos.

Restrições da propriedade pset.min e da propriedade pset.max

Estas duas propriedades colocam limites ao número de processadores que podem ser alocados para um conjunto de processadores, o mínimo e o máximo. Para obter informações sobre estas propriedades, consulte a Tabela 12–1.

Dentro destas restrições, recursos de uma partição de recurso estão disponíveis para serem alocados para outras partições de recurso na mesma instância do Solaris. O acesse ao recurso é obtido pela vinculação a um grupo que esteja associado ao conjunto de recursos. A vinculação é realizada no login ou manualmente pelo administrador que tenha o privilégio PRIV_SYS_RES_CONFIG.

Restrição da propriedade cpu.pinned

A propriedade cpu-pinned indica que uma determinada CPU não deve ser movida por DRP do conjunto de processadores no qual está localizada. Você pode definir esta propriedade libpool como utilização máxima de cache para um aplicativo específico que esteja sendo executado dentro de um conjunto de processadores.

Para obter informações sobre estas propriedades, consulte a Tabela 12–1.

Restrição da propriedade pool.importance

A propriedade pool.importance descreve a importância relativa de um grupo como definida pelo administrador.

Objetivos da configuração

Objetivos são especificados da mesma forma para restrições. O conjunto completo de objetivos está documentado na Tabela 12–1.

Há duas categorias de objetivos.

Dependente de carga de trabalho

Um objetivo dependente da carga de trabalho é um objetivo que variará de acordo com a natureza da carga de trabalho em execução no sistema. Um exemplo é o objetivo utilization. Os dados da utilização de um conjunto de recursos variarão de acordo com a natureza da carga de trabalho que esteja ativa no conjunto.

Independente de carga de trabalho

Um objetivo independente de carga de trabalho é um objetivo que não varia de acordo com a natureza da carga de trabalho em execução no sistema. Um exemplo é o objetivo locality de CPU. A medida avaliada de localidade para um conjunto de recursos não varia com a natureza da carga de trabalho que esteja ativa no conjunto.

Você pode definir três tipos de objetivos.

Nome 

Elementos válidos 

Operadores 

Valores 

wt-load

system

N/D 

N/D 

locality

pset

N/D 

loose | tight | none

utilization

pset

< > ~

0100%

Objetivos são armazenados em seqüências de propriedades na configuração libpool. Os nomes das propriedades são os seguintes:

Objetivos têm a seguinte sintaxe:

Todos os objetivos levam um prefixo de importância opcional. A importância atua como um multiplicador para o objetivo, aumentando assim a significância de sua contribuição para a avaliação da função do objetivo. O intervalo é de 0 a INT64_MAX (9223372036854775807). Se não especificado, o valor padrão da importância é 1.

Alguns tipos de elemento fornecem suporte a mais de um tipo de objetivo. Um exemplo é pset. Você pode especificar vários tipos de objetivo para esses elementos. Pode também especificar vários objetivos de utilização em um único elemento pset.

Para exemplos de uso, consulte Como definir objetivos de configuração.

Objetivo wt-load

O objetivo wt-load favorece configurações que coincidem alocações de recursos com utilizações de recurso. Um conjunto de recursos que use mais recursos receberão mais recursos quando este objetivo estiver ativo. wt-load significa carga ponderada.

Use este objetivo quando você estiver satisfeito com as restrições estabelecidas usando as propriedades mínimas e máximas, e desejar que o daemon manipule recursos livremente dentro dessas restrições.

O objetivo locality

O objetivo locality influencia o impacto que a localidade, como medida por dados de grupo de localidade (lgroup), tem sobre a configuração selecionada. Uma definição alternativa para localidade é latência. Um lgroup descreve recursos de CPU e de memória. O lgroup é usado pelo sistema do Solaris para determinar a distância entre recursos, usando o tempo como a medida. Para obter mais informações sobre a abstração do grupo de localidades, consulte Locality Groups Overview no Programming Interfaces Guide.

Este objetivo pode tomar um dos três valores seguintes:

tight

Se definido, as configurações que maximizam a localidade de recursos são favorecidas.

loose

Se definido, as configurações que minimizam a localidade de recursos são favorecidas.

none

Se definido, o favorecimento de uma configuração não é influenciado pela localidade do recurso. Este é o valor padrão para o objetivo locality.

Em geral, o objetivo locality deve ser definido para tight. No entanto, para maximizar a largura de banda da memória ou para minimizar o impacto das operações DR em um conjunto de recursos, você pode definir este objetivo como loose ou mantê-lo na definição padrão de none.

Objetivo utilization

O objetivo utilization favorece configurações que alocam recursos a partições que não atendem ao objetivo de utilização especificado.

Este objetivo é especificado usando-se operadores e valores. Os operadores são os seguintes:

<

O operador “less than” indica que o valor especificado representa um valor de destino máximo.

>

O operador “greater than” indica que o valor especificado represente um valor de destino mínimo.

~

O operador “about” indica que o valor especificado é um valor de destino em relação ao qual determinada flutuação é aceitável.

Um pset pode ter somente um objetivo de utilização definido para cada tipo de operador.

Você pode definir um operador < e um operador > juntos para criar um intervalo. Os valores serão validados para garantir que não se sobreponham.

Exemplo de objetivos de configuração

No exemplo abaixo, poold avalia esses objetivos para o pset:


Exemplo 12–1 Exemplo de objetivos do poold

pset.poold.objectives "utilization > 30; utilization < 80; locality tight"


Para exemplos adicionais de uso, consulte Como definir objetivos de configuração.

Propriedades do poold

Há quatro categorias de propriedades:

Tabela 12–1 Nomes de propriedade definidos

Nome da propriedade 

Tipo 

Categoria 

Descrição 

system.poold.log-level

seqüência 

Configuração 

Nível de registro 

system.poold.log-location

seqüência 

Configuração 

Local de registro 

system.poold.monitor-interval

uint64 

Configuração 

Monitoração de intervalo de amostragem 

system.poold.history-file

seqüência 

Configuração 

Local do histórico de decisão 

pset.max

uint64 

Restrição 

Número máximo de CPUs para este conjunto de processadores 

pset.min

uint64 

Restrição 

Número mínimo de CPUs para este conjunto de processadores 

cpu.pinned

bool 

Restrição 

CPUs fixadas a este conjunto de processadores 

system.poold.objectives

seqüência 

Objetivo 

Seqüência formatada que segue a sintaxe da expressão de objetivo do poold

pset.poold.objectives

seqüência 

Objetivo 

Seqüência formatada que segue a sintaxe da expressão do poold

pool.importance

int64 

Parâmetro de objetivo 

Importância atribuída pelo usuário