Você usa o comando rcapadm para configurar o resource capping daemon. Você pode executar as seguintes ações:
Definir o valor de limite para a aplicação do limite
Definir intervalos para as operações executadas por rcapd
Ativar ou desativar o resource capping
Exibir o status atual do resource capping daemon configurado
Para configurar o daemon, você deve ter privilégios de superusuário ou ter o perfil Gerenciamento de processo na lista de perfis. As funções Gerenciamento de processo e Administrador de sistema incluem o perfil Gerenciamento de processo.
Alterações de configuração podem ser incorporadas ao rcapd de acordo com o intervalo da configuração (consulte Intervalos de operação de rcapd) ou por demanda enviando-se um SIGHUP (consulte a página do manual kill(1)).
Se usado sem argumentos, rcapadm exibe o status atual do resource capping daemon, se foi configurado.
As subseções a seguir discutem a aplicação de limite, os valores de limite e os intervalos de operação de rcapd.
Você pode controlar o uso do tamanho do conjunto residente (RSS) definindo o recurso capped-memory ao configurar a região. Para obter mais informações, consulte Solaris 10 8/07: controle da memória física e o recurso capped-memory. Você pode executar rcapd em uma região, inclusive a região global, para aplicar limites de memória em projetos nessa região.
Você pode definir um limite provisório da quantidade máxima de memória que pode ser consumida em uma região específica, até a próxima reinicialização. Consulte Como especificar um limite de recurso provisório de uma região.
Se você estiver usando rcapd em uma região para regular o consumo da memória física através de processos executados em projetos com limites de recursos definidos, é necessário configurar o daemon nessa região.
Ao escolher limites de memória para aplicativos em regiões diferentes, geralmente você não precisa levar em consideração que os aplicativos residem em regiões diferentes. A exceção é serviços por região. Serviços por região consomem memória. Este consumo de memória deve ser levado em consideração ao determinar a quantidade da memória física de um sistema, assim como limites de memória.
Não é possível executar rcapd em uma região com marca lx. No entanto, é possível usar o daemon a partir da região global para limitar a memória na região com marca.
O limiar de aplicação de limitação de memória é a porcentagem da utilização da memória física no sistema que aciona a aplicação da limitação. Quando o sistema excede esta utilização, limites são aplicados. A memória física usada por aplicativos e pelo kernel está incluída nesta porcentagem. A porcentagem da utilização determina como os limites de memória são aplicados.
Para aplicar limites, a memória pode ser despaginada das cargas de trabalho do projeto.
A memória pode ser despaginada para reduzir o tamanho da parte da memória que está sobre seu limite para uma determinada carga de trabalho.
A memória pode ser despaginada para reduzir a proporção da memória física usada que está sobre o limiar da aplicação do limite de memória no sistema.
Uma carga de trabalho é permitida para usar a memória física até seu limite. Uma carga de trabalho pode usar memória adicional desde que a utilização da memória do sistema esteja abaixo do limiar da aplicação do limite de memória.
Para definir o valor para a aplicação do limite, consulte Como definir o limiar de aplicação de limite de memória.
Se um limite de projeto for definido muito baixo, talvez não haja memória suficiente para a carga de trabalho continuar efetivamente em condições normais. A paginação que ocorre devido à carga de trabalho requerer mais memória tem um efeito negativo sobre o desempenho do sistema.
Projetos que têm limites definidos muito altos podem consumir memória física disponível antes de seus limites serem excedidos. Neste caso, a memória física é efetivamente gerenciada pelo kernel e não por rcapd.
Ao determinar limites em projetos, leve em consideração os fatores abaixo.
O daemon pode tentar reduzir o uso da memória física da carga de trabalho de um projeto sempre que o uso de amostrar exceder o limite do projeto. Durante a aplicação do limite, são usados os dispositivos de permuta e outros dispositivos que contêm arquivos que a carga de trabalho mapeou. O desempenho dos dispositivos de permuta é um fator crucial na determinação do desempenho de uma carga de trabalho que rotineiramente excede seu limite. A execução da carga de trabalho é semelhante a sua execução em uma máquina com a mesma quantidade de memória física que o limite da carga de trabalho.
O uso da CPU do daemon varia com o número de processos nas cargas de trabalho do projeto que está limitando e com os tamanhos dos espaços de endereço das cargas de trabalho.
Uma pequena parte do tempo da CPU do daemon é gasta na amostragem do uso de cada carga de trabalho. A adição de processos a cargas de trabalho aumenta o tempo gasto na amostragem do uso.
Outra parte do tempo da CPU do daemon é gasto na aplicação de limites quando são excedidos. O tempo gasto é proporcional à quantidade da memória virtual envolvida. O tempo gasto da CPU aumenta ou diminui em resposta às alterações correspondentes no tamanho total do espaço de endereço de uma carga de trabalho. Estas informações são relatadas na coluna vm da saída de rcapstat. Para obter mais informações, consulte Monitorização da utilização de recursos com rcapstat e a página do manual rcapstat(1).
O daemon rcapd relata o RSS das páginas da memória que são compartilhadas com outros processos ou mapeadas várias vezes dentro do mesmo processo como uma estimativa razoavelmente precisa. Se os processos de diferentes projetos compartilham a mesma memória, então esta memória será incluída no total de RSS de todos os projetos que compartilham a memória.
A estimativa é útil com cargas de trabalho, como bancos de dados que usam memória compartilhada amplamente. Para as cargas de trabalho de banco de dados, você também pode fazer uma amostragem do uso regular do projeto para determinar um valor de limite inicial adequado usando a saída das opções -J ou -Z do comando prstat. Para obter mais informações, consulte a página do manual prstat(1M)
Você pode ajustar os intervalos para as operações periódicas executadas por rcapd.
Todos os intervalos são especificados em segundos. As operações de rcapd e seus valores de intervalo padrão são descritos na tabela abaixo.
Operação |
Valor de intervalo padrão em segundos |
Descrição |
---|---|---|
scan |
15 |
Número de segundos entre escaneamentos para processos que foram unidos a uma carga de trabalho do projeto ou dela separados. O valor mínimo é 1 segundo. |
sample |
5 |
O número de segundos entre amostras do tamanho do conjunto residente e subseqüentes aplicações de limite. O valor mínimo é 1 segundo. |
report |
5 |
Número de segundos entre atualizações da estatística de paginação. Se definidas para 0, as estatísticas não são atualizadas e a saída de rcapstat não é atual. |
config |
60 |
Número de segundos entre reconfigurações. Em um evento de reconfiguração, rcapadm lê o arquivo de configuração à procura de atualizações e examina o banco de dados do project à procura de limites de projeto novos ou revisados. O envio de um SIGHUP para rcapd causa uma reconfiguração imediata. |
Para ajustar intervalos, consulte Como definir intervalos de operação.
O intervalo de escaneamento controla a freqüência com que rcapd procura novos processos. Em sistemas com muitos processos em execução, o escaneamento da lista leva mais tempo, por isso é preferível estender o intervalo para reduzir o tempo total gasto da CPU. No entanto, o intervalo de escaneamento também representa a quantidade mínima de tempo que um processo deve existir para ser atribuído a uma carga de trabalho limitada. Se houver cargas de trabalho que executam muitos processos breves, rcapd poderá não atribuir os processos a uma carga de trabalho se o intervalo de escaneamento foi estendido.
O intervalo de amostra configurado com rcapadm é a quantidade mais curta de tempo que rcapd aguarda entre a amostragem do uso de uma carga de trabalho e a aplicação de um limite, se for excedido. Se você reduzir esse intervalo, rcapd irá, na maioria das condições, aplicar limites com mais freqüência, resultando possivelmente em uma E/S aumentada devido à paginação. No entanto, um intervalo de amostra mais curto pode também diminuir o impacto que um aumento repentino no uso da memória física de uma carga de trabalho específica teria sobre outras cargas de trabalho. A janela entre as amostragens, em que a carga de trabalho pode consumir memória sem demora e possivelmente tomar a memória de outras cargas de trabalho limitadas, é reduzida.
Se o intervalo de amostra especificado para rcapstat for mais curto do que o intervalo especificado para rcapd com rcapadm, a saída de alguns intervalos poderá ser zero. Esta situação ocorre porque rcapd não atualiza estatísticas com mais freqüência do que o intervalo especificado com rcapadm. O intervalo especificado com rcapadm independe do intervalo de amostragem usado por rcapstat.