2008年 6月 19日 木曜日
やっぱり Sun がスキ!
Solaris コンテナの dedicated-cpu プロパティ紹介
今回は、Solaris 10 8/07(Update 4)で追加された Solaris コンテナ の dedicated-cpu プロパティを紹介します。
dedicated-cpu プロパティを指定すると、Zone 起動時に指定した CPU 個数分のプール及び プロセッサセットを Solaris が自動作成した後 Zone が起動します。
この機能が追加される以前は、Zone に専用のプールを割り当てる際、システム管理者 が pooladm コマンドでプール及びプロセッサセットをあらかじめ作成する作業が必要でしたが、 dedicated-cpu プロパティを指定すると、Zone 起動時に Solaris がアドホックにプールを 作成する為、あらかじめプールを用意する必要がありません。
では実際に動作を確認してみましょう。
基本的な設定方法は、zonecfg コマンドから dedicated-cpu プロパティを追加する際に pool で使用する CPU 数を指定します。
[例] zone01 に 8 CPU を割り当てるプールを作成
.....
zonecfg:zone01> add dedicated-cpu
zonecfg:zone01:dedicated-cpu> set ncpus=8
zonecfg:zone01:dedicated-cpu> end
zonecfg:zone01> info
zonename: zone01
zonepath: /export/zones/zone01
brand: native
autoboot: false
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: shared
.....
dedicated-cpu:
ncpus: 8
それでは早速 Zone を起動してみましょう。
# zoneadm -z zone01 boot
mpstat で確認すると、指定した通り CPU が 8 個割り当てられています。
# zlogin zone01 mpstat CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl 0 9 0 304 272 160 32 0 3 10 0 59 1 1 0 97 1 1 0 23 15 0 18 0 2 3 0 20 1 0 0 99 2 0 0 8 11 0 12 0 2 3 0 17 1 0 0 99 3 0 0 6 9 0 8 0 2 3 0 10 1 0 0 99 4 5 0 35 9 0 12 0 2 3 0 21 1 0 0 99 5 0 0 7 8 0 7 0 1 3 0 10 1 0 0 99 6 0 0 5 7 0 6 0 1 2 0 8 1 0 0 99 7 0 0 4 7 0 6 0 1 2 0 8 1 0 0 99
プールの状態を確認すると SUNWtmp_zone01 という名前のプールが自動作成されました。
# poolstat
pset
id pool size used load
0 pool_default 120 0.00 0.04
2 SUNWtmp_zone01 8 0.00 0.00
次に、 zone01 を停止してみます。
# zoneadm -z zone01 halt
Zoneを停止すると、自動作成した pool が消えました。
# poolstat
pset
id pool size used load
0 pool_default 128 0.00 0.05
このように、dedicated-cpu プロパティで CPU 数を指定する事により、事前にプールを作成 しなくても Zone 起動時に Solaris が自動でプールを作成して Zone に割り当て、 Zone 停止 時は自動でプールを削除する事が確認できました。
さらに、
複数の dedicated-cpu プロパティを設定した Zone を作成し、プール間で CPU リソースを Zone のワークロードに合わせて移動させたい場合は、dedicated-cpu プロパティ 作成時に importance パラメタを追加します。
[例] zone01 に Min 4 CPU, MAX 8 CPU の範囲で重み付け 3 を割り当てたプールを作成
onecfg:zone01> add dedicated-cpu
zonecfg:zone01:dedicated-cpu> set ncpus=4-8
zonecfg:zone01:dedicated-cpu> set importance=3
zonecfg:zone01:dedicated-cpu> end
zonecfg:zone01> info
zonename: zone01
zonepath: /export/zones/zone01
brand: native
autoboot: false
bootargs:
pool:
limitpriv:
scheduling-class:
...
dedicated-cpu:
ncpus: 4-8
importance: 3
Posted at 06:41午後 6 19, 2008 by Naoyuki Yamada in Sun | 投稿されたコメント[0]