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