ओह, लेकिन cgroups आसान हैं :) 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
प्रक्रिया शुरू करें जो पदानुक्रम, cgroups बनाएगी, और सीमाएं निर्धारित करेगी। यदि यह सफल होता है, तो आपके पास दो cgroups हैं, जिनमें से दोनों में 50% CPU असाइन किया गया है और 1G मेमोरी उपलब्ध है (यह नहीं जानते कि आपकी उपलब्ध मेमोरी की वास्तविक मात्रा क्या है, इस उदाहरण में यह 2G है)। अब आपको बस सभी कार्यों (यानी सिस्टम पर चल रही सभी प्रक्रियाओं) को रूट ग्रुप से nosshd cgroup में ले जाना होगा:
cgroup]# cat tasks >> nosshd/tasks
cgroup]# echo > tasks
फिर आपको बस sshd
प्रक्रिया की PID प्राप्त करने और इसे sshd कार्य फ़ाइल की जानकारी देने की आवश्यकता है:
cgroup]# echo $PID >> sshd/tasks
ता-दा, आपका काम हो गया। अब आप निश्चिंत हो सकते हैं कि sshd में हमेशा 50% CPU और 1G मेमोरी होगी।