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

関連資料・記事