Capítulo 4. Gerenciamento de Recurso
O Completely Fair Scheduler (CFS) no kernel do Linux é um agendador de compartilhamento proporcional que divide o tempo da CPU de forma proporcional entre grupos de tarefas dependendo da prioridade/peso da tarefa ou partes atribuidas à grupos de tarefas. No CFS, um grupo de tarefas pode obter mais do que sua parte da CPU se existir ciclos suficientes da CPU disponível no sistema, devido ao trabalho de conservação do agendador.
- Pay-per-use
- Em sistemas de empresas que cuidam de clientes múltiplos, os provedores de serviços cloud precisam atribuir uma quantia fixa de tempo de CPU para o convidado virtual baseado no nível de serviço.
- Garantia de nível de serviços
- O cliente demanda uma porcentagem de recursos de CPU sem a interrupção de serviços para cada convidado virtual.
O Red Hat Enterprise Linux 6 permitiu cgroups imediatos e libvirt criou um cgroups por convidado. Em sistemas grandes SMP, o aumento do número de cgroups, piorou o desempenho. No entanto, no Red Hat Enterprise Linux 6.2, a escalabilidade do cgroups CPU foi aprimorada significantemente, tornando-o possível de criar e executar diversos cgroups de uma vez sem implicações de desempenho.
/proc
, dd sysctl_sched_shares_window
, foi adicionado com o padrão definido para 10 ms.
O design do controlador de E/S do cgroups aprimorou para reduzir o uso de bloqueios dentro do controlador de E/S, resultando no desempenho aprimorado. Também, o controlador de E/S agora suporta as estatísticas por cgroup.
O Red Hat Enterprise Linux 6.2 apresenta a melhoria do cabeçalho do uso de memória no controlador de memória, reduzindo a alocação de cabeçalho para diretriz page_cgroup
em 37%. Além disso, o ponteiro direto page_cgroup-to-page
foi removido, melhorando o desempenho do controlador de memória.
O padrão para a variante CFQ's group_isolation
mudou de 0
para 1
(/sys/block/<device>/queue/iosched/group_isoaltion
). Após diversos testes e diversos relatórios de usuário, descobriu-se que o padrão 1
é mais útil. Quando definido para 0
,todas as filas de E/S se tornam parte do cgroup root e não o cgroup atual que o aplicativo é parte. Consequentemente, isto leva à uma não diferenciação de serviço para aplicativos.
Nota