こんにちは。CTOの馬場です。
今回もインフラエンジニア向けにちょっとした情報を紹介します。
今回は、先日参加した レッドハットフォーラム 2010 で紹介されていた cgroups について紹介します。
※注:ざっくりとした理解で書いているので、誤りがあれば指摘してもらえると嬉しいです!
ここが理解が違う、こんな使い方もあるよ!などの情報は、twitterで
あたりに教えてもらえると嬉しいです。
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では利用できるそうなので、これからが楽しみですね。