要求された詳細がない場合...
以下は、ubuntuでcgroupを使用する方法です。
この投稿を通して、変数「$ USER」をプロセスを実行しているユーザーに変更する必要があります
メモリに関する情報を追加しました。それがFAQになります。必要ない場合は使用しないでください。
1)インストール cgroup-bin
sudo apt-get install cgroup-bin
2)再起動します。cgroupsは現在、/sys/fs/cgroup
3)ユーザー(プロセスの所有者)のcgroupを作成します
# Change $USER to the system user running your process.
sudo cgcreate -a $USER -g memory,cpu:$USER
4)ユーザーはリソースを管理できます。デフォルトでは、ユーザーは1024 cpuユニット(共有)を取得するため、約10%cpuに制限するために、メモリはバイト単位で...
# About 10 % cpu
echo 100 > /cgroup/cpu/$USER/cpu.shares
# 10 Mb
echo 10000000 > /cgroup/memory/$USER/memory.limit_in_bytes
5)プロセスを開始します(execを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> &
構成
cgroupsがあなたのために働いていると仮定します;)
編集/etc/cgconfig.conf
、カスタムcgroupに追加
# Graphical
gksudo gedit /etc/cgconfig.conf
# Command line
sudo -e /etc/cgconfig.conf
cgroupに追加します。再度、$ USERをプロセスを所有するユーザー名に変更します。
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;
}
}
また、グループを指定することもできますgid=$GROUP
。/etc/cgconfig.confは十分にコメントされています。
ここで再びプロセスを実行します cgexec -g cpu:$USER command <options>
プロセスを(PIDで)表示できます /sys/fs/cgroup/cpu/$USER/tasks
例
bodhi @ ufbt:〜$ cgexec -g cpu:bodhi sleep 100&
[1] 1499
bodhi @ ufbt:〜$ cat / sys / fs / cgroup / cpu / bodhi / tasks
1499
追加情報については、http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/を参照してください。