О, але групи легко! :) Встановіть пакет libcgroup. Створіть /etc/cgconfig.conf:
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";
}
}
Почніть cgconfig
процес, який створить ієрархію, групи та встановить межі. Якщо це вдасться, у вас є дві групи, обидві з яких присвоєно 50% центрального процесора та 1G пам’яті (не знаю, який фактичний обсяг наявної пам’яті; якщо в цьому прикладі це 2G). Тепер вам просто потрібно перемістити всі завдання (тобто всі процеси, що працюють в системі) з кореневої групи в групу nosshd:
cgroup]# cat tasks >> nosshd/tasks
cgroup]# echo > tasks
Тоді вам просто потрібно отримати PID sshd
процесу та перемістити його в файл завдань sshd:
cgroup]# echo $PID >> sshd/tasks
Та-да, ти закінчив. Тепер ви можете бути впевнені, що sshd завжди матиме 50% процесора та 1G пам'яті.