Assim, a partir do redhat / centos 7, o gerenciamento de recursos do sistema recebeu uma grande reformulação. Antes do redhat / centos 7, os cgroups eram executados usando pacotes e daemons do libcgroup como o cgred.
Antes, se eu quisesse transformar um processo em um cgroup, poderia fazer algo como:
cgclassify -g cpu:some_cgroup <pid>
Ao pesquisar sobre o gerenciamento de recursos do systemd, no entanto, eu encontrei artigos declarando que os pacotes do libcgroup foram preteridos e a maioria não funcionará no redhat / centos 7.
Se o cgclassify ainda funcionar, estou confuso sobre como eu o usaria para mover processos porque realmente não são mais nomeados cgroups, mas sim slices / scopes / services.
Supondo que eu tenha um usuário conectado com o uid 1111, que criei algumas regras para limitar recursos no systemd, o comando a seguir não funciona para mover um processo para sua fatia de usuário:
cgclassify -g cpu:user-1111.slice <pid>
Existe alguma convenção que eu estou sentindo falta aqui?
Eu também vi que existe um comando systemd-run
que quase faz o que eu quero, mas não há como passar todas as variáveis de ambiente atuais para ele, o que não é nem mesmo algo com o qual você precisa se preocupar com cgclassify
. Você pode passar variáveis de ambiente, mas para realmente passar todas as variáveis, você literalmente tem que ter uma entrada para cada variável passada através do comando que permite passar variáveis de ambiente.
Alguém já pensou em fazer com que o cgclassify funcione, ou mesmo apenas uma mudança de abordagem que eu possa fazer?
Tags systemd cgroup centos7 containers