Eu tenho um serviço systemd (um executor de CI) que tende a atolar o sistema com trabalhos muito intensivos da CPU. Eu peguei a média de carga voando acima de 100 agora e quero acabar com essa bobagem.
Nada mais no sistema é limitado de forma alguma, então o negócio é que eu quero que todo o resto continue como seria executado agora, mas também:
- (a) todos os processos executados como o usuário único que os jobs de CI executam ou
- (b) qualquer processo filho instanciado pelo daemon de serviço systemd
... para ficar em segundo plano em relação a todo o resto do sistema. Na verdade, eu gostaria que eles tivessem algo como um limite absoluto de 90%, mesmo quando nada mais no sistema precisa dos 10% restantes dos ciclos de CPU, mas se qualquer outra coisa solicitar tempo de CPU, eu gostaria que eles obtivessem tanto quanto eles querem primeiro.
Qual é a melhor maneira de configurar isso? Estou executando o Arch Linux no EC2 e tenho cgroups disponíveis (incluindo cgmanager), mas nunca os usei.