こんにちは。CTOの馬場です。
今回もインフラエンジニア向けにちょっとした情報を紹介します。
今回は、先日参加した レッドハットフォーラム 2010 で紹介されていた cgroups について紹介します。
※注:ざっくりとした理解で書いているので、誤りがあれば指摘してもらえると嬉しいです!
ここが理解が違う、こんな使い方もあるよ!などの情報は、twitterで @heartbeatsjp @hbstudy @toshiak_netmark あたりに教えてもらえると嬉しいです。
cgroupsとは?
cgroupsは Control Groupsの略で、 Linux kernelに組み込まれているリソース割り当て管理機能です。
「期待の新機能」とかタイトルつけましたが、
マージされたのは2.6.2xの頃のようなのでかなり時間は経っていますね。
RHEL的に新機能なので、ご愛嬌ということで。
プロセス(プロセスグループ)ごとに、下記のリソースの割り当てを変更できます。
- CPU
- メモリ
- ディスクI/O
- ネットワークI/O
ざっくりとした使い方
Linuxなので、ファイルベースで管理します。
- cgroupファイルシステムをマウントして
- cgroupを作成して
- CPU、メモリなどのリソース割り当てを定義して
- PIDをcgroupに登録する
といった感じです。
詳しくは 公式ドキュメントの1.5 How do I use cgroups ? を見てください。
使い方は 2. Usage Examples and Syntax にとても丁寧に書いてあります。
使いどころ
レッドハットフォーラム 2010の会場でも宣伝していましたが、 KVMを利用した仮想化基盤でのリソース割り当て管理に最適です。
いままで難しかった「VMごとのディスク・ネットワークI/O制御」がついに実現します!
スゴいでしょう?スゴいですよね?スゴいんですよ。
詳しい情報
公式ドキュメントを読みましょう ;)
http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt
最新のLinux kernelにはマージされていますが、 RHEL/CentOS 5.xでは利用できないようです。
RHEL6では利用できるそうなので、これからが楽しみですね。