Oh ama cgroups kolaydır :) libcgroup paketini kurun. Bir /etc/cgconfig.conf oluşturun:
mount {
cpu = /cgroup/cpu_and_mem;
cpuacct = /cgroup/cpu_and_mem;
memory = /cgroup/cpu_and_mem;
}
group sshd {
cpu {
cpu.shares="500";
}
cpuacct {
cpuacct.usage="0";
}
memory {
memory.limit_in_bytes="1G";
}
}
group nosshd {
cpu {
cpu.shares="500";
}
cpuacct {
cpuacct.usage="0";
}
memory {
memory.limit_in_bytes="1G";
}
}
Başlangıç cgconfig
hiyerarşi, cgroups oluşturabilir ve sınırlar koyacaktır süreci. Bu başarılı olursa, her ikisi de atanan CPU'nun% 50'sine ve 1G belleğine sahip olan iki grubunuz vardır (mevcut kullanılabilir bellek miktarınızın ne olduğunu bilmiyor; bu örnekte 2G olduğunu varsayarak). Şimdi tüm görevleri (yani sistemde çalışan tüm işlemleri) kök gruptan nosshd cgroup içine taşımanız yeterlidir:
cgroup]# cat tasks >> nosshd/tasks
cgroup]# echo > tasks
O zaman sadece sshd
sürecin PID'sini almanız ve sshd görev dosyasına aktarmanız yeterlidir :
cgroup]# echo $PID >> sshd/tasks
Ta-da, işin bitti. Şimdi sshd'nin CPU ve 1G belleğin daima% 50'sine sahip olacağından emin olabilirsiniz.