Otimização de Memória contínua

O programa de otimização de memória contínua executa a consolidação da página e a promoção dinamicamente.

Suporte De Tamanho De Página Variável Dinâmica

A capacidade do AIX versão 6.1 de combinar o uso conservador de memória de 4 KB de tamanho de página em regiões de memória pouco referenciadas com os benefícios de desempenho de 64 KB de tamanho de página em regiões de memória densamente referenciadas, automaticamente e sem intervenção do usuário, é denominada suporte a tamanho de página variável dinâmico (DVPSS).

O DVPSS baseia-se na capacidade do POWER6 de suportar tamanhos de página mistos em um único segmento. A arquitetura suporta várias permutações de tamanhos de página diferentes; no entanto POWER6 suporta combinar tamanhos de página de 4 KB e 64 KB.

A configuração padrão para um segmento de tamanho de página variável é de 4 KB páginas e 4 KB traduções em uma região de 64 KB de tamanho e alinhado até que todas as 16 4 KB páginas sejam referenciadas. Quando todas as 16 páginas são referenciadas, o DVPSS verifica o estado para ter o mesmo estado (como proteção de página de leitura ou gravação igual, sem proteção de execução, proteção de chave de armazenamento e não em estado de E/S). Se o fazem, então 4 KB traduções são removidas e substituídas por uma tradução de 64 KB.

Agente de Otimização do Programa contínuo (CPOagente)

A limitação no suporte ao método DVPPS pelo sistema operacional é que todas as 16 4 KB páginas devem ser referenciadas antes de promover o tamanho da página para 64 KB. O CPOagente ajuda a superar essa limitação usando a otimização de memória contínua que realiza a consolidação da página e a promoção dinamicamente. Esse recurso se aplica ao AIX 6.1 Nível de tecnologia 6 e superior..

Você pode acessar o CPOagente em:

usr/lib/perf/CPOagent

Sintaxe

CPOagent [-f arquivo de configuração]

Sinalização

Item Descrição
-f Altera o nome do arquivo de configuração padrão. Se esta opção não for especificada, o nome do arquivo será assumido para estar disponível no local do arquivo /usr/lib/perf/CPOagent.cf .
O CPOagente não é executado, por padrão. O usuário root pode iniciar o CPOagente explicitamente. Quando iniciado, o CPOagente corre em segundo plano para identificar os processos do candidato que podem se beneficiar de tamanhos de página maiores. Os processos do candidato são identificados com base na memória e uso do processador excedendo o valor do limite especificado.
Nota: O CPOagente atualmente pode promover o tamanho da página para 64 KB.

Arquivo de Configuração do CPOagente

Quando o CPOagente é iniciado, ele lê e analisa as informações no arquivo de configuração. O arquivo de configuração é um arquivo stanza com campos que inclui:
TCPU=<n1>
TMEM=<n2>
PATI=<n3>
PATM=<n4>
PPTS=<n5>
TOPM=<n6>
PFLR=<c>

A descrição de campos no arquivo de configuração segue:

Campos Descrição
TCPU Especifica o limite de uso da CPU por processo, em porcentagem

Padrão: 25

Mínimo: 10

Máximo: 100

tmem Especifica o limite de uso da memória por processo, na MB

Padrão: 1

Mínimo: 1

PATI Especifica o intervalo de tempo de análise da página (PATI), em minutos. Ele especifica o intervalo de tempo no qual os processos do candidato são analisados para identificar as páginas que podem ser consolidadas e promovidas para um tamanho maior.

Padrão: 15

Mínimo: 5

Máximo: 60

PATM Especifica o monitor de tempo de análise de página (PATM), em segundos. Ele especifica a quantidade de estatísticas de uso da página de tempo a ser coletada para identificação de páginas candidatas para consolidação de página e promoção.

Padrão: 30

Mínimo: 5

Máximo: 180

PPTS Especifica as amostras do gatilho da promoção da página (PPTS). Ele especifica o número de amostras a serem coletadas antes de acionar uma promoção de página.

Padrão: 4

Mínimo: 4

TOPM Especifica o número de processos de maior consumo de CPU por CPU que devem ser considerados para consolidação de página e promoção.

Padrão: 2

Mínimo: 1

PFLR Especifica o curinga e o processo que corresponde ao curinga são considerados pelo CPOagente para consolidação de página e promoção. Ele é chamado de wildcard de filtro de processo (PFLR).

Vantagens do uso do CPOagente

A vantagem de utilizar o mecanismo do CPOagente inclui:
  • Os aplicativos são transparentes para as mudanças. Portanto, não há necessidade de fazer alterações nos aplicativos.
  • A promoção de página é executada com base nas políticas definidas pelo administrador em arquivo CPOagent.cf , que é dependente da demanda de carga de trabalho em recursos de CPU e memória. Isso ajuda na promoção de página eficiente. Este processo permite uma granularidade fina de controle sobre o suporte de tamanho de página variável dinâmico garantindo que a promoção de página seja executada para aqueles aplicativos com um requisito.
Um cenário de amostra
Considere um aplicativo, StressEngine que está em execução em um sistema. O aplicativo tem alto consumo de CPU e Memória. Sem o CPOagente, o aplicativo StressEngine não pode explorar o suporte de tamanho de página de variáveis dinâmicas, até que todas as 16 páginas de um segmento específico sejam referenciadas e as páginas estejam no mesmo estado. O tamanho da página pode ser conferida com o relatório de processo gerado pelo comando svmon .
# svmon -P 8454254 -O pgsz=on,unit=MB,segment=on
Unit: MB
-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual
 8454254 StressEngine	  157.87     42.3        0   157.84

     PageSize                Inuse        Pin       Pgsp    Virtual
     s    4 KB                64.2       0.02          0       64.2
     m   64 KB                93.7       42.3          0       93.7

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
  86f49b         2 work process private              s   64.1  0.02    0    64.1
    9000         d work shared library text          m   47.9     0    0    47.9
    8002         0 work fork tree                    m   45.8  42.3    0    45.8
                   children=939b1c, 0
  80fdc3         f work shared library data          s   0.09     0    0    0.09
  85fd37         1 clnt code,/dev/hd1:10             s   0.02     0    -       -
Se o CPOagente for iniciado, e ele tiver o arquivo de amostra CPOagent.cf a seguir
--------------------------------------------
TCPU=25
TMEM=50
PATI=15
PATM=30
PPTS=4
TOPM=2
PFLR=Stress*
--------------------------------------------
De acordo com o arquivo de configuração, os ciclos do CPOagente para 15 minutes (PATI = 15). Para um intervalo de 15 minutes minutos específico, ele monitora o uso de CPU e memória do processo que está em execução. Os principais 2 processos (TOPM = 2) com o nome do processo tendo Stress (PFLR = Stress *), o Uso da CPU superior a 25% (TCPU = 25) e o uso de memória superior a 50 MB (TMEM = 50) são os candidatos para consolidação de página e promoção. Este processo verifica coletando quatro amostras (PPTS = 4) antes de acionar o algoritmo para consolidação de página e promoção. Adicionalmente, as estatísticas de uso da página são coletadas para 30 seconds (PATM = 30) para identificar as páginas candidatas para consolidação de página e promoção. Agora com o CPOagent em execução, ele não irá esperar que todas as 16 páginas de um segmento específico sejam referenciadas. CPOagente avalia se o aplicativo precisa da Consolidação da Página e da promoção, fazendo referência ao arquivo de configuração CPOagent.cf e à demanda do aplicativo em recursos de CPU e Memória. As páginas promovidas são evidentes a partir do relatório de processo gerado pelo comando svmon .
# svmon -P 8454254 -O pgsz=on,unit=MB,segment=on
Unit: MB
-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual
 8454254 StressEngine	   157.87     42.3        0   157.84

     PageSize                Inuse        Pin       Pgsp    Virtual
     s    4 KB                64.2       0.02          0       64.2
     m   64 KB                93.7       42.3          0       93.7

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
  86f49b         2 work process private             sm   64.1   0.02    0    64.1
    9000         d work shared library text          m   47.9      0    0    47.9
    8002         0 work fork tree                    m   45.8   42.3    0    45.8
                   children=939b1c, 0
  80fdc3         f work shared library data         sm   0.09      0    0    0.09
  85fd37         1 clnt code,/dev/hd1:10             s   0.02      0    -       -