Na ausência de detalhes solicitados ...
Aqui está como eu uso o cgroups no Ubuntu.
Ao longo deste post, você precisará alterar a variável "$ USER" para o usuário que está executando o processo
Adicionei informações para a memória, bem como isso será uma FAQ, se você não precisar dela, não a use.
1) Instale cgroup-bin
sudo apt-get install cgroup-bin
2) Reinicie. cgroups está agora localizado em /sys/fs/cgroup
3) Crie um cgroup para seu usuário (o proprietário do processo)
# Change $USER to the system user running your process.
sudo cgcreate -a $USER -g memory,cpu:$USER
4) Seu usuário pode gerenciar recursos. Por padrão, os usuários obtêm 1024 unidades de cpu (compartilhamentos), portanto, para limitar a cerca de 10% de cpu, a memória está em bytes ...
# About 10 % cpu
echo 100 > /cgroup/cpu/$USER/cpu.shares
# 10 Mb
echo 10000000 > /cgroup/memory/$USER/memory.limit_in_bytes
5) Inicie seu processo (troque exec para cgexec)
# -g specifies the control group to run the process in
# Limit cpu
cgexec -g cpu:$USER command <options> &
# Limit cpu and memory
cgexec -g memory,cpu:$USER command <options> &
Configuração
Assumindo que os cgroups estão trabalhando para você;)
Edite /etc/cgconfig.conf
, adicione seu cgroup personalizado
# Graphical
gksudo gedit /etc/cgconfig.conf
# Command line
sudo -e /etc/cgconfig.conf
Adicione seu cgroup. Novamente altere $ USER para o nome de usuário que possui o processo.
group $USER {
# Specify which users can admin (set limits) the group
perm {
admin {
uid = $USER;
}
# Specify which users can add tasks to this group
task {
uid = $USER;
}
}
# Set the cpu and memory limits for this group
cpu {
cpu.shares = 100;
}
memory {
memory.limit_in_bytes = 10000000;
}
}
Você também pode especificar grupos gid=$GROUP
, /etc/cgconfig.conf é bem comentado.
Agora, mais uma vez, execute seu processo com cgexec -g cpu:$USER command <options>
Você pode ver seu processo (por PID) em /sys/fs/cgroup/cpu/$USER/tasks
Exemplo
% bl0ck_qu0te%Para informações adicionais, consulte: link