ホーム > GNU/Linux > cgroupメモ

cgroupメモ

プロセス毎にメモリ制限をかけたくてcgroupについてちょっと調べたのでメモ
・cgcreate (libcgroup-toolsパッケージに入ってる)を使って子を作る
 ・-tオプションでプロセスを追加できるユーザー:グループ
 ・-aオプションで制限を変更できるユーザー:グループ
 ・-gで制限する種類:任意のグループ名 (たとえばmemory:testgroup)
  ・種類はカンマ区切りで複数指定可能 memory,cpu等
・/sys/fs/cgroup以下に作られてる各ディレクトリの下にグループ名のディレクトリが作られる
 ・/sys/fs/cgroup/memory/test とか

# cgcreate -t renda:renda -a renda:renda -g memory:testgroup
これで/sys/fs/cgroup/memory/testgroup が作られる。
権限を継承してサブグループを作るには
# cgcreate -t renda:renda -a renda:renda -g memory:testgroup/test2
のように/区切りで設定する。

対象となるプロセスは各グループディレクトリにあるtaskファイルにpidを書くことで設定可能。
シェルなどを指定した場合子プロセスには自動で引き継がれる。
cgexecから実行すれば最初から指定した状態で実行できる。

メモリの制限はmemory/memory.limit_in_bytesに書く。MとかKとか使える。
参考:redhatのマニュアル
この値は物理メモリサイズで、超えた場合スワップアウトされるっぽい。
(10Mとかに抑えてエラーが出るまで延々とmallocするプログラムを走らせたところ、VIRT表記が1G超えても止まらなかった。
RESは忘れてしまったので今度再実験する。)

広告
カテゴリー:GNU/Linux
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。