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

Visão geral do gerenciamento de recursos

Os ambientes de computação modernos devem fornecer uma resposta flexível às variadas cargas de trabalho geradas por diferentes aplicativos em um sistema. Uma carga de trabalho é uma agregação de todos os processos de um aplicativo ou grupo de aplicativos. Se as facilidades de gerenciamento de recursos não forem usadas, o Solaris Operating System responderá às demandas das cargas de trabalho adaptando-se dinamicamente a novas solicitações de aplicativos. Esta resposta padrão em geral significa que todas as atividades no sistema recebem acesso igual a recursos. As facilidades de gerenciamento de recursos do Solaris permitem que você lide com cargas de trabalho individualmente. Você pode:

A capacidade de minimizar comprometimentos de desempenho entre cargas de trabalho, juntamente com os recursos que monitorem uso e utilização, é chamada de gerenciamento de recursos. O gerenciamento de recursos é implementado através de uma coleção de algoritmos. Os algoritmos manipulam a série de solicitações de capacidade que um aplicativo apresenta ao longo de sua execução.

As facilidades de gerenciamento de recursos permitem que você modifique o comportamento padrão do sistema operacional com relação a diferentes cargas de trabalho. O comportamento se refere primeiramente ao conjunto de decisões tomadas por algoritmos do sistema operacional quando um aplicativo apresenta uma ou mais solicitações ao sistema. Você pode usar as facilidades do gerenciamento de recursos para fazer o seguinte:

A implementação de uma configuração de sistema que usa as facilidades de gerenciamento de recursos pode servir a diversos propósitos. Você pode:

Ao se planejar uma configuração gerenciada por recursos, há os seguintes requisitos-chave:

Após identificar cargas de trabalho cooperativas e conflitantes, você pode criar uma configuração de recurso que apresenta o menor comprometimento dos objetivos do serviço da atividade, dentro dos limites das capacidades do sistema.

Um gerenciamento de recursos eficaz é possibilitado no sistema do Solaris ao oferecer mecanismos de controle, mecanismos de notificação e mecanismos de monitoração. Várias dessas capacidades são fornecidas através de aprimoramentos dos mecanismos existente, como o sistema de arquivos proc(4), conjuntos de processadores e classes de agendamento. Outras capacidades são específicas do gerenciamento de recursos. Essas capacidades são descritas nos próximos capítulos.

Classificações de recursos

Um recurso é qualquer aspecto do sistema de computação que pode ser manipulado com o propósito de alterar o comportamento do aplicativo. Assim, um recurso é uma capacidade que um aplicativo solicita implícita ou explicitamente. Se a capacidade for negada ou restringida, a execução de um aplicativo escrito robustamente se dá mais lentamente.

A classificação de recursos, em oposição à identificação de recursos, pode ser feita ao longo de diversos eixos. Os eixos podem ser solicitados implicitamente, em vez de explicitamente, com base no tempo, como o tempo da CPU, comparado com a independência do tempo, como compartilhamentos de CPU atribuídos, e assim por diante.

Em geral, o gerenciamento de recursos com base no agendador é aplicado a recursos que o aplicativo pode solicitar implicitamente. Por exemplo, para continuar a execução, um aplicativo solicita implicitamente tempo de CPU adicional. Para gravar dados em um soquete de rede, um aplicativo solicita implicitamente largura de banda. Restrições podem ser impostas ao uso total agregado de um recurso solicitado implicitamente.

Interfaces adicionais podem ser apresentadas, de modo que a largura de banda ou os níveis de serviço da CPU possam ser negociados explicitamente. Recursos solicitados explicitamente, como a solicitação de um segmento adicional, podem ser gerenciados por restrição.

Mecanismos de controle do gerenciamento de recursos

Os três tipos de mecanismos de controle que estão disponíveis no Solaris Operating System são restrições, agendamento e partição.

Mecanismos de restrição

Restrições permitem que o administrador ou o desenvolvedor de aplicativos definam limites no consumo de recursos específicos para uma carga de trabalho. Com limites conhecidos, a modelagem de cenários de consumo de recursos se torna um processo mais simples. Limites também podem ser usados para controlar aplicativos que se comportam mal e que de outro modo comprometeriam o desempenho do sistema ou a disponibilidade através de solicitações de recursos não reguladas.

As restrições apresentam complicações para o aplicativo. O relacionamento entre o aplicativo e o sistema pode ser modificado ao ponto de o aplicativo não poder mais funcionar. Uma abordagem que pode mitigar este risco é reduzir gradualmente as restrições a aplicativos com comportamento de recursos desconhecido. Os controles de recursos tratados no Capítulo 6Controles de recursos (visão geral) oferecem um mecanismo de restrição. Aplicativos mais novos podem ser escritos para reconheçam as restrições de recursos, mas nem todos os autores de aplicativos escolhem fazê-lo.

Mecanismos de agendamento

O agendamento se refere a fazer uma seqüência de decisões de alocações a intervalos específicos. A decisão feita é baseada em um algoritmo previsível. Um aplicativo que não necessita da alocação atual deixa os recursos disponíveis para uso por outros aplicativos. O gerenciamento de recursos com base em agendamento permite a utilização total de uma configuração pouco comprometida, ao mesmo tempo que fornece alocações controladas em um cenário criticamente comprometido ou comprometido em excesso. O algoritmo subjacente define como o termo “controlado” é interpretado. Em algumas instâncias, o algoritmo de agendamento pode garantir que todos os aplicativos tenham algum acesso ao recurso. O fair share scheduler (FSS), descrito no Capítulo 8Fair share scheduler (visão geral), gerencia o acesso de um aplicativo aos recursos de CPU de uma forma controlada.

Mecanismos de partição

A partição é usada para vincular uma carga de trabalho a um subconjunto dos recursos disponíveis do sistema. Essa vinculação garante que uma quantidade conhecida de recursos esteja sempre disponível para a carga de trabalho. A funcionalidade de grupos de recursos, descrita no Capítulo 12Grupos de recursos (visão geral), permite que você limite cargas de trabalho para subconjuntos específicos da máquina.

Configurações que usam partição podem evitar o comprometimento excessivo no sistema geral. No entanto, ao evitar esse comprometimento excessivo, a capacidade de se alcançar altas utilizações pode ser reduzida. Um grupo de recursos reservado, como processadores, não está disponível para uso por outra carga de trabalho quando a carga de trabalho vinculada a eles está ociosa.

Configuração de gerenciamento de recurso

Partes da configuração do gerenciamento de recursos podem ser colocadas em um serviço de nomes de rede. Esta função permite que o administrador aplique restrições de gerenciamento de recursos a uma coleção de máquinas, e não na base de uma máquina exclusivamente. Um trabalho relacionado pode compartilhar um identificador comum, e o uso agregado desse trabalho pode ser tabulado a partir de dados de contabilidade.

A configuração do gerenciamento de recursos e os identificadores orientados para cargas de trabalho são descritos com mais detalhes no Capítulo 2Projetos e tarefas (visão geral). A facilidade da contabilidade estendida que vincula esses identificadores com o uso de recursos de aplicativos é descrita no Capítulo 4Contabilidade estendida (visão geral).

Interação com o Solaris Zones

As facilidades de gerenciamento de recursos podem ser usadas com o Solaris Zones para aprimorar ainda mais o ambiente do aplicativo. As interações entre essas facilidades e regiões são descritas nas seções aplicáveis neste guia.