controlando a prioridade de aplicativos usando cgroups

5

Eu gostaria de entender melhor os cgroups e gostaria de entender os casos de uso para a aplicação de cgroups.

Os cgroups são uma boa maneira de priorizar aplicativos diferentes (ou seja, dar maior prioridade a tipos específicos de aplicativos, como servidores da Web)?

    
por Johnnie 24.11.2012 / 10:24

1 resposta

5

Existem vários usos para cgroups . Da administração do sistema, provavelmente o mais importante é a limitação de recursos - o exemplo clássico aqui é o acesso à cpu. Se você criar um grupo para, por exemplo, sshd e dar-lhe algum compartilhamento de tempo de CPU não desprezível (comparado a outros grupos ou o padrão sob o qual caem todos os processos indiferenciados), é garantido que você pode efetuar login mesmo quando a máquina estiver executando um intensivo de CPU tarefas.

Mais interessante, se você der a este "acesso remoto" processos muito maiores, então você poderá logar quase instantaneamente (porque o daemon ssh será priorizado sobre o resto dos processos em execução) enquanto você ganhou prejudica a força computacional geral da máquina, uma vez que os recursos são alocados apenas por necessidade. Você geralmente deseja fazer isso junto com a priorização de E / S (incluindo rede). No entanto, como John aponta corretamente no comentário abaixo, não se quer fazer essas coisas de maneira descuidada (uma vez que pode ser acionado de maneira inesperada). É importante ter em mente que os grupos são herdados por padrão - ou seja, não se deseja iniciar um hog de memória / CPU a partir de uma sessão ssh desse tipo. Ainda assim, existem mecanismos que podem atribuir processos aos cgroups quando eles começam.

Outro uso é isolar os processos uns dos outros - em combinação com outros recursos (isolamento de namespace) nos kernels recentes do Linux, eles são usados para criar virtualização no nível do SO, como o LXC (contêineres Linux) .

Além disso, você pode fazer várias coisas de contabilidade e controle (congelando alguns grupos de processos, atribuindo-os a núcleos de CPU específicos, etc.).

Os dois links aqui devem ser um ponto de partida razoável se você estiver procurando por mais informações. Você também pode querer verificar o diretório Documentation/cgroups na árvore fonte do kernel Linux.

    
por 24.11.2012 / 21:11