Eu tenho usado apache2-mpm-itk
com cgrulesengd
no cgroupv1 para classificar automaticamente os processos filhos que apache2-mpm-itk
geram ao atender solicitações da Web para diferentes vhosts há cerca de 3 anos, e tem funcionado muito bem, quando um vhost começa a usar muita CPU / RAM, o oom killer cuida desse vhost específico e deixa os outros em paz.
Agora estou preparando um novo servidor Debian 11, e estou descobrindo que preciso usar o cgroup v2 agora. Então, estou tentando trazer minha solução de controle de recursos para o novo mundo.
Quando crio meu eg /etc/systemd/system/user-UID.slice.d/override.conf
com os controles de recursos para esse usuário, eles não se aplicam aos processos bifurcados, como cgrulesengd
costumava fazer, como estou confirmando com systemd-cgls
. Em vez disso, o pai e todos os seus filhos ainda pertencem à mesma fatia apache2.service.
Existe uma maneira de classificar automaticamente os processos filhos de um processo em um cgroup diferente do processo de geração com o systemd?
Eu postei a pergunta na
systemd-devel
lista de discussão:https://lists.freedesktop.org/archives/systemd-devel/2022-January/047257.html
Aqui está a resposta de Benjamin Berg:
https://lists.freedesktop.org/archives/systemd-devel/2022-January/047260.html
Resposta muito útil de Benjamin. Seguem dois trechos:
E:
EDITAR :
Parece que o cgconfigparser e o cgrulesengd foram atualizados para suportar o cgroupv2.
Eles precisam ser construídos a partir da fonte no momento da redação deste artigo.
O pacote pode ser baixado de lá:
https://github.com/libcgroup/libcgroup/releases/tag/v2.0
Em seguida, siga os passos, por exemplo:
Os nomes dos parâmetros do controlador no cgconfig.conf podem ser diferentes, certifique-se de usar os do cgroupv2 no novo mundo.