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).
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. | |
Definir o intervalo da operação. |
O intervalo é aplicado às operações periódicas executadas pelo resource capping daemon. | |
Ativar o resource capping. |
Ative o resource capping em seu sistema. | |
Desativar o resource capping. |
Desative o resource capping em seu sistema. | |
Relatar informações de limite e projeto. |
Visualize comandos de exemplo para produzir relatórios. | |
Monitorar um tamanho de conjunto residente. |
Produza um relatório no tamanho do conjunto residente 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. | |
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 |
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.
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.
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.
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.
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.
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.
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.
Use a opção -i para definir valores de intervalo.
# rcapadm -i interval=value,...,interval=value |
Todos os valores de intervalo são especificados em segundos.
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.
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.
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 |
Há três maneiras de desativar o resource capping em seus sistema.
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.
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 |
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).
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.
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.
Defina o valor máximo da memória como 512 Mbytes para a região my-zone.
# rcapadm -z testzone -m 512M |
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.
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.
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:
O WSS se torna menor.
O limite é aumentado.
O padrão de acesso à memória do aplicativo é alterado.
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.
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.
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).
Você pode usar a opção -g de rcapstat para relatar o seguinte:
A utilização de memória física atual como um percentual da memória física instalada no sistema
O limite da aplicação de limiar de memória do sistema definido por rcapadm
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% |