2007年 9月 25日 火曜日
やっぱり Sun がスキ!
Solaris コンテナに対するメモリ制限方法
今月リリースした Solaris 10 8/07 (Update4) では、Solaris コンテナの
メモリ管理が強化されましたのでその機能を紹介致します。
今までの Solaris コンテナでは、非大域ゾーン全体に対する CPU
リソースは制限可能でしたが、メモリリソースに対しては制限をかけることができませんでした。
今回リリースした Solaris 10 8/07 では、Solaris コンテナの非大域ゾーンに対してメモリの制限を
かける capped-memory のリソースが追加されており、この capped-memory に対し
て、physical, swap, locked プロパティが指定可能となりました。
では、実際に確認してみましょう。
今回は、zone01 に対して、200M の物理メモリ(RSS) と swap 300M の制限
をかける非大域ゾーンを作成しました。
# zonecfg -z zone01 zone01: そのような構成済みゾーンはありません 'create' を使用して、新しいゾーンの構成を開始してください。 zonecfg:zone01> create zonecfg:zone01> set zonepath=/export/zone/zone01 zonecfg:zone01> add capped-memory zonecfg:zone01:capped-memory> set physical=200m zonecfg:zone01:capped-memory> set swap=300m zonecfg:zone01:capped-memory> end zonecfg:zone01> verify zonecfg:zone01> commit
設定の確認
# zonecfg -z zone01 info
zonename: zone01
zonepath: /export/zone/zone01
brand: native
autoboot: false
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: shared
...
...
capped-memory:
physical: 200M
[swap: 300M]
rctl:
name: zone.max-swap
value: (priv=privileged,limit=314572800,action=deny)
今回制限をかけた物理メモリとスワップの値は、具体的に "prstat -Z" で表示される RSS と SWAP の値になります。(下記 prstat -Z の出力結果参照)
実際、物理メモリを50M 消費するプログラム malloc50m を動作させて 検証してみた所、 zone01 の RSS が一瞬 200M を超えますが、 rcapd の働きにより物理メモリ(RSS)が 200M を超えた分はスワップに退避されました。
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
1464 noaccess 159M 50M run 59 0 0:00:30 9.3% java/23
142 daemon 7504K 2256K sleep 59 0 0:00:00 1.1% rcapd/1
1141 root 4848K 2856K cpu0 59 0 0:00:00 0.8% prstat/1
1478 root 51M 51M sleep 59 0 0:00:00 0.7% malloc50m/1
621 root 19M 16M sleep 59 0 0:00:04 0.6% Xorg/1
756 noaccess 157M 74M sleep 59 0 0:00:30 0.5% java/24
934 root 10M 8976K sleep 59 0 0:00:10 0.5% svc.configd/16
872 root 9144K 5472K sleep 59 0 0:00:00 0.2% dtterm/1
715 root 22M 17M sleep 59 0 0:00:02 0.1% iiimd/6
870 root 10M 6852K sleep 59 0 0:00:01 0.1% dtwm/5
932 root 9988K 8452K sleep 59 0 0:00:02 0.1% svc.startd/14
760 root 7720K 4084K sleep 59 0 0:00:00 0.0% iiim-xbe/3
762 root 6728K 2724K sleep 59 0 0:00:00 0.0% atokx2auxd/1
1072 root 4672K 3108K sleep 59 0 0:00:00 0.0% inetd/4
873 root 8092K 4328K sleep 59 0 0:00:00 0.0% sdtperfmeter/1
ZONEID NPROC SWAP RSS MEMORY TIME CPU ZONE
1 33 161M 200M 20% 0:00:42 11% zone01
0 67 171M 292M 29% 0:00:55 3.7% global
(まとめ)
今回追加された Solaris コンテナに対するメモリリソース制限の機能追加は、BrandZ の ように派手ではありませんが、着実に Solaris 10 仮想化技術をまた一歩進化させております。
Posted at 05:53午後 9 25, 2007 by Naoyuki Yamada in Sun | 投稿されたコメント[0]
投稿されたコメント: