Textos

Publicado por Marcelo Soares Souza em 05 de Outubro de 2011 licenciado sobre Creative Commons 3.0 Brasil

Tux GroupOriginalmente: http://linuxaria.com/article/introduction-to-cgroups-the-linux-conrol-group?lang=en
Traduzido: Marcelo Soares Souza


cgroups é um recurso para limitar, contabilizar e isolar o uso de recursos.

O cgroups esta presente no Kernel a partir do Linux 2.6.24 (desde 2007), ainda não é um recurso muito conhecido ou utilizado (pelo menos que eu saiba). Neste artigo mostrarei a você uma visão geral desta poderosa ferramenta do Linux para controlar o quanto de CPU, memória, E/S (Entrada/Saída) de disco ou E/S de rede cada processo ou usuário pode utilziar no seu servidor.

Então em termos gerais o cgroups é um recurso para limitar, contabilizar e isolar o uso de recurso (CPU, memória, disco E/S, etc.) de grupos de processos. Vamos ver como.

Teoria

Um grupo de controle é uma coleção de processos que estão ligados pelo mesmo critério. Estes grupos podem ser hierarquicos, onde cada grupo herda limites de seus parentes. O kernel fornece acesso a multiplos controladores (subsistemas) através da interface do cgroups.

A infraestrutura do cgroups fornece características de agrupamento de tarefas, enquanto os vários subsistemas do cgroups implementam o controle de políticas especificas para cada recurso. Este framework é realmente poderoso e permite a você definir regras de recursos não apenas baseado no usuário e grupos.

Por exemplo você pode:

  • Garantir que um Servidor Web não utilize toda a memória do sistema que também esta rodando um banco de dados.
  • Alocar recurso do sistema entre grupos de usuários com diferente prioridades (ex.: convidados (guests) 10% da CPU, usuários 40% da CPU, superusuários 50% da CPU)

Mas o cgroups pode ser utilizado também para isolar e dar comandos especiais a grupos de processos, então nos podemos dizer que existe dois tipos de subsistemas

  • O subsistema de isolamento e controle especial
  • O subsistema de controle de recurso

Irei focar no controle de recursos então este é apenas uma visão geral do subsistema de Isolamento e Controle Especial:

  • CPUset : atribui nó de CPU e memória ao cgroups
  • Namespace: fornece uma visão privada do sistema para os processos em um cgroup, e é usado primariamente para para a virtualização a nível de Sistema Operacional (OS-level virtualization).
  • Freeze: para todos os processos em um cgroup removendo estes do scheduler de tarefas.
  • Device: permite or nega acesso aos dispositivos para processos em um cgroup.
  • Checkpoint/Restart: Salvar o estado de todos os processos em um cgrouppara um arquivo de dump. Reiniciar mais tarde (ou apenas salva o estado e continua).

A administração do cgroups é realizada pelo uso de um sistema de arquivo virtual (virtual file system) especial (uma espécie de procfs ou sysfs), chamado cgroupfs.

Tag(s):

É preciso esta logado para comentar