Dependendo do que exatamente você gosta, existem duas opções:
Se você se importa com quantos threads / processos estão no cgroup, mas não com a 'média de carga':
Simplesmente conte as linhas no arquivo tasks
para o cgroup. Este arquivo será atualizado automaticamente sempre que um thread ou processo for criado ou removido no cgroup.
Se você se preocupa com a utilização real:
Isso é um pouco mais complicado. Você pode obter uma lista de processos / threads no cgroup do arquivo tasks
acima mencionado e, em seguida, verificar o uso de cada PID usando /proc
, mas essa abordagem tem tantas condições de corrida que você pode monetizar como um esporte competitivo. Como alternativa, se você estiver usando cgroups da versão 2, poderá verificar o arquivo cpu.stat
no cgroup. Este arquivo terá algumas linhas contando microssegundos de tempo de CPU consumidos pelo cgroup, para que você possa obter uma estimativa aproximada do uso, verificando duas vezes um segundo e dividindo a diferença por 10 para obter uma porcentagem de utilização (100% para total utilização de um núcleo, 20% para a plena utilização de dois, etc). Uma abordagem semelhante pode ser feita com os cgroups da versão 1 com o controlador cpuacct (crie um cgroup sob esse controlador espelhando o que você criou sob o controlador cpuset).