Como posso configurar o compartilhamento de largura de banda entre cgroups?

4

É bastante fácil usar o tc com o enfileiramento estocástico de justiça (SFQ) para configurar o compartilhamento de largura de banda entre fluxos , mas um aplicativo pode abrir vários fluxos e obter um quota de largura de banda não desejada . É possível configurar o compartilhamento de largura de banda entre aplicativos ?

Agrupar cada aplicativo em um cgroup parece ser um primeiro passo claro. Se o SFQ suportasse hash na ID da classe, seria fácil usar tc filter para atribuir a cada cgroup uma ID de classe. Infelizmente, o SFQ não parece apoiar isso. Outra abordagem promissora é usar o CBQ, que faz o Weighted Round Robin entre as classes. Infelizmente, fazer todos os pesos iguais parece não funcionar.

Existe outra maneira de compartilhar a largura de banda entre os cgroups?

    
por Ankur Dave 03.06.2011 / 21:48

1 resposta

2

Confira o controlador cgroup net_cls. Basicamente, ele anexa uma tag especial (definida em /mntpoint/net_cls.classid a cada pacote que se origina no soquete associado a um aplicativo nesse cgroup. Posteriormente, você pode usar essa 'tag' como classid no filtro anexado ao qdisc para passar o tráfego para classes diferentes com base no cgroup de onde vem o tráfego.

A única documentação que encontrei neste tópico é alguns slides do Red Hat [ HTML via Google ].

    
por 27.06.2011 / 15:46