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

Capítulo 11 Administração do resource capping daemon (tarefas)

Este capítulo contém procedimentos para configurar e usar o resource capping daemon rcapd.

Para uma visão geral de rcapd, consulte o Capítulo 10Controle da memória física usando o resource capping daemon (visão geral).

Configuração e uso do resource capping daemon (mapa de tarefas)

Tarefa 

Descrição 

Para instruções 

Definir o limiar de aplicação do limite de memória. 

Configure um limite que será aplicado quando a memória física disponível para processos estiver baixa. 

Como definir o limiar de aplicação de limite de memória

Definir o intervalo da operação. 

O intervalo é aplicado às operações periódicas executadas pelo resource capping daemon. 

Como definir intervalos de operação

Ativar o resource capping. 

Ative o resource capping em seu sistema. 

Como ativar o resource capping

Desativar o resource capping. 

Desative o resource capping em seu sistema. 

Como desativar o resource capping

Relatar informações de limite e projeto. 

Visualize comandos de exemplo para produzir relatórios. 

Relatório de informações de limite e projeto

Monitorar um tamanho de conjunto residente. 

Produza um relatório no tamanho do conjunto residente de um projeto. 

Monitoração do RSS de um projeto

Determinar o tamanho do conjunto de trabalho de um projeto. 

Produza um relatório sobre o tamanho do conjunto de trabalho de um projeto. 

Determinação do tamanho conjunto de trabalho de um projeto

Relatar a utilização de memória e limites de memória. 

Imprima uma utilização de memória e uma linha de aplicação de limite no fim do relatório para cada intervalo. 

Relato da utilização de memória e limiar de aplicação de limite de memória

Administração do resource capping daemon com rcapadm

Esta seção contém procedimentos para configurar o resource capping daemon com o comando rcapadm. Consulte a Configuração de rcapd e a página do manual rcapadm(1M) para mais informações. Também há informações sobre o uso do rcapadm para especificar um limite de recurso provisório de uma região.

Se usado sem argumentos, rcapadm exibe o status atual do resource capping daemon, se foi configurado.

ProcedureComo definir o limiar de aplicação de limite de memória

Limites podem ser configurados para que não sejam aplicados antes que a memória física disponível para processos esteja baixa. Para obter mais informações, consulte Limiar de aplicação de limitação de memória.

O valor mínimo (e padrão) é 0, o que significa que os limites de memória são sempre aplicados. Para definir um mínimo diferente, adote este procedimento.

  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. Use a opção -c de rcapadm para definir um valor diferente de utilização de memória física para a aplicação do limite de memória.


    # rcapadm -c percent
    

    percent é o intervalo de 0 a 100. Valores mais altos são menos restritivos. Um valor mais alto significa que as cargas de trabalho de projeto limitadas podem ser executadas sem a aplicação de limites antes de a utilização da memória do sistema exceder esse limiar.

Consulte também

Para exibir a utilização da memória física atual e o limiar de aplicação de limite, consulte Relato da utilização de memória e limiar de aplicação de limite de memória.

ProcedureComo definir intervalos de operação

Intervalos de operação de rcapd contém informações sobre os intervalos para as operações periódicas executadas por rcapd. Para definir intervalos de operação usando rcapadm, adote este procedimento.

  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. Use a opção -i para definir valores de intervalo.


    # rcapadm -i interval=value,...,interval=value 
    

    Observação –

    Todos os valores de intervalo são especificados em segundos.


ProcedureComo ativar o resource capping

Há três maneiras de ativar o resource capping em seu sistema. A ativação do resource capping também define o arquivo /etc/rcap.conf com valores padrã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 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. Ative o resource capping daemon usando uma das seguintes maneiras:

    • Ative o resource capping usando o comando svcadm.


      # svcadm enable rcap
      
    • Ative o resource capping daemon para que seja iniciado agora e também seja iniciado toda vez que o sistema for inicializado, digite:


      # rcapadm -E
      
    • Ative o resource capping daemon na inicialização sem iniciá-lo agora especificando também a opção -n:


      # rcapadm -n -E
      

ProcedureComo desativar o resource capping

Há três maneiras de desativar o resource capping em seus 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 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. Desative o resource capping daemon usando uma das seguintes maneiras:

    • Desative o resource capping usando o comando svcadm.


      # svcadm disable rcap
      
    • Para desativar o resource capping daemon, de modo que seja parado agora e não seja iniciado quando o sistema for inicializado, digite:


      # rcapadm -D
      
    • Para desativar o resource capping daemon sem pará-lo, especifique também a opção -n:


      # rcapadm -n -D
      

    Dica –

    Desativação segura do resource capping daemon


    Utilize o comando svcadm ou o comando rcapadm com -D para desativar rcapd com segurança. Se o daemon for eliminado (consulte a página do manual kill(1)), os processos poderão ser deixados em um estado de parado e requerer que seja reiniciado manualmente. Para retomar a execução de um processo, use o comando prun. Para obter mais informações, consulte a página do manual prun(1).

ProcedureComo especificar um limite de recurso provisório de uma região

Esse procedimento é usado para alocar a quantidade máxima de memória que pode ser consumida por uma região específica. Esse valor é válido somente até a próxima reinicialização. Para definir um limite permanente, use o comando zonecfg.

  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.

  2. Defina o valor máximo da memória como 512 Mbytes para a região my-zone.


    # rcapadm -z testzone -m 512M
    

Produção de relatórios com rcapstat

Use rcapstat para relatar estatística de resource capping. Monitorização da utilização de recursos com rcapstat explica como usar o comando rcapstat para gerar relatórios. Essa seção também descreve os cabeçalhos de coluna no relatório. A página do manual rcapstat(1) também contém estas informações.

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

Relatório de informações de limite e projeto

Neste exemplo, limites são definidos para dois projetos associados a dois usuários. O user1 tem um limite de 50 megabytes, e o user2 tem um limite de 10 megabytes.

O comando a seguir produz cinco relatórios a intervalos de amostragem de 5 segundos.


user1machine% rcapstat 5 5
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M   50M    0K 3312K    0K
 78194   user2      1  2368K  1856K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1856K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1928K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1928K   10M    0K    0K    0K    0K
    id project  nproc     vm    rss   cap    at avgat    pg avgpg
112270   user1     24   123M    35M   50M    0K    0K    0K    0K
 78194   user2      1  2368K  1928K   10M    0K    0K    0K    0K 

As três primeiras linhas de saída constituem o primeiro relatório, que contém as informações de limite e projeto para os dois projetos e estatística de paginação desde que rcapd foi iniciado. As colunas at e pg são um número maior do que zero para o user1 e zero para o user2, o que indica que ao mesmo tempo no histórico do daemon o user1 excedeu seu limite, mas o user2 não.

Os relatórios subseqüentes não relatam atividade significativa.

Monitoração do RSS de um projeto

O exemplo a seguir mostra o user1 do projeto, que tem um RSS em excesso do limite de RSS.

O comando a seguir produz cinco relatórios a intervalos de amostragem de 5 segundos.


user1machine% rcapstat 5 5

    id project  nproc    vm   rss   cap    at avgat     pg  avgpg
376565   user1      3 6249M 6144M 6144M  690M  220M  5528K  2764K
376565   user1      3 6249M 6144M 6144M    0M  131M  4912K  1637K
376565   user1      3 6249M 6171M 6144M   27M  147M  6048K  2016K
376565   user1      3 6249M 6146M 6144M 4872M  174M  4368K  1456K
376565   user1      3 6249M 6156M 6144M   12M  161M  3376K  1125K

O projeto do user1 tem três processos que estão usando ativamente a memória física. Os valores positivos na coluna pg indicam que rcapd está despaginando consistentemente a memória ao tentar observar o limite reduzindo a utilização da memória física dos processos do projeto. No entanto, rcapd não consegue manter o RSS abaixo do valor de limite. Isto é indicado pelos valores variáveis de rss que não mostram uma diminuição correspondente. Assim que a memória é despaginada, a carga de trabalho usa-a novamente e a contagem do RSS volta a subir. Isso significa que toda a memória residente do projeto está sendo usada ativamente e que o tamanho do conjunto de trabalho (WSS) é maior do que o limite. Assim, rcapd é forçado a despaginar uma parte do conjunto de trabalho para observar o limite. Nesta condição, o sistema continuará a experimentar altas taxas de falha de página e E/S associadas, até que um do que se segue ocorra:

Nesta situação, o encurtamento do intervalo de amostragem poderia reduzir a discrepância entre o valor do RSS e o valor do limite, fazendo rcapd efetuar a amostra da carga de trabalho e aplicar limites com mais freqüência.


Observação –

Ocorre uma falha de página quando uma nova página deve ser criada ou quando o sistema deve copiar uma página de um dispositivo de permuta.


Determinação do tamanho conjunto de trabalho de um projeto

O exemplo a seguir é uma continuação do exemplo anterior, e usa o mesmo projeto.

O exemplo anterior mostra que o projeto do user1 está usando mais memória física do que o limite permite. Este exemplo mostra a quantidade de memória requerida pela carga de trabalho do projeto.


user1machine% rcapstat 5 5
    id project  nproc    vm   rss   cap    at avgat     pg  avgpg
376565   user1      3 6249M 6144M 6144M  690M    0K   689M     0K
376565   user1      3 6249M 6144M 6144M    0K    0K     0K     0K
376565   user1      3 6249M 6171M 6144M   27M    0K    27M     0K
376565   user1      3 6249M 6146M 6144M 4872K    0K  4816K     0K
376565   user1      3 6249M 6156M 6144M   12M    0K    12M     0K
376565   user1      3 6249M 6150M 6144M 5848K    0K  5816K     0K
376565   user1      3 6249M 6155M 6144M   11M    0K    11M     0K
376565   user1      3 6249M 6150M   10G   32K    0K    32K     0K
376565   user1      3 6249M 6214M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K
376565   user1      3 6249M 6247M   10G    0K    0K     0K     0K

Na metade do ciclo, o limite no projeto do user1 foi aumentado de 6 gigabytes para 10 gigabytes. Este aumento interrompe a aplicação do limite e permite que o tamanho do conjunto residente aumente, limitado somente por outros processos e pela quantidade de memória na máquina. A coluna rss poderia se estabilizar para refletir o tamanho do conjunto de trabalho do projeto (WSS), 6247 M neste exemplo. Este é o valor de limite mínimo que permite que os processos do projeto sejam operados sem incorrerem continuamente em falhas de página.

Enquanto o limite no user1 é 6 segundos, em cada intervalo de amostra de 5 segundos o RSS diminui e a I/O aumenta à medida que rcapd despagina parte da memória da carga de trabalho. Logo depois que uma despaginação é concluída, a carga de trabalho que necessita dessas páginas as repagina enquanto continua sendo executada. Esse ciclo se repete até que o limite aumenta para 10 gigabytes, aproximadamente na metade do exemplo. Em seguida, o RSS se estabiliza em 6,1 gigabytes. Já que o RSS da carga de trabalho agora está abaixo do limite, não ocorrem mais paginações. A E/S associada à paginação também é interrompida. Portanto, o projeto requeria 6,1 gigabytes para realizar o trabalho que estava fazendo no momento em que estava sendo observado.

Consulte também as páginas do manual vmstat(1M) e iostat(1M).

Relato da utilização de memória e limiar de aplicação de limite de memória

Você pode usar a opção -g de rcapstat para relatar o seguinte:

A opção -g faz com que uma utilização de memória e uma linha de aplicação de limite sejam impressas no fim do relatório de cada intervalo.


# rcapstat -g
    id project   nproc    vm   rss   cap    at avgat   pg  avgpg
376565    rcap       0    0K    0K   10G    0K    0K   0K     0K
physical memory utilization: 55%   cap enforcement threshold: 0%
    id project   nproc    vm   rss   cap    at avgat   pg  avgpg
376565    rcap       0    0K    0K   10G    0K    0K   0K     0K
physical memory utilization: 55%   cap enforcement threshold: 0%