Solaris 資料一覧
Zone環境のリソース配分をFSSで行う
2008/10/7更新
対応バージョン: 10
FSS(Fair Share Scheduler)によってZone環境のリソース配分を行う手順を示す。
FSS有効化
まずシステムでFSSを有効にする。
現状確認
デフォルトではスケジューリングクラスは未設定である。
# dispadmin -d dispadmin: Default scheduling class is not set
FSS有効化
スケジューリングクラスをFSSに設定する。
# dispadmin -d FSS
確認
設定したスケジューリングクラスは/etc/dispadmin.confに書き込まれOS起動時にクラス設定が行われるので、ここでいったんシステムをリブートし、FSSが有効になっていることを確認する。
# dispadmin -d FSS (Fair Share)
Zoneにシェア設定
FSSが有効になったらZoneにシェアを設定する。
ここではNon-Global Zoneが1つ存在し、以下の割り当てを行うものとする。
Global Zone
1 (システム全体の3分の1)
Non-Global Zone(zone1)
2 (システム全体の3分の2)
Global Zoneにはデフォルトでシェア = 1が割り当てられるので、ここではNon-Global Zoneの設定を行う。
# zonecfg -z zone1 zonecfg:zone1> add rctl zonecfg:zone1:rctl> set name=zone.cpu-shares zonecfg:zone1:rctl> add value (priv=privileged,limit=2,action=none) zonecfg:zone1:rctl> end zonecfg:zone1> verify zonecfg:zone1> commit zonecfg:zone1> exit
(*) 設定値のうち意味を持つのはlimitのみなので、privとactionはそれぞれ固定で「privileged」「none」を指定する。
設定が終わったらZoneを再起動する。
# zoneadm -z zone1 reboot
シェア割当状況チェック
シェアの割当状況はprstatの-Zオプションにて確認できる。
Non-Global Zone(zone1)とGlobal Zone(global)それぞれでCPU負荷の高い処理を実行すると大体割当通りの2対1になっていることが分かる。
# prstat -Z : ZONEID NPROC SWAP RSS MEMORY TIME CPU ZONE 2 37 118M 171M 31% 0:01:24 62% zone1 0 106 321M 217M 39% 0:12:29 30% global
関連資料・記事