Oracle Solarisコンテナ:Oracle Solaris 10 新機能
機能編(2):Solarisリソースマネージャ
概要
Solarisリソースマネージャは、ハードウェアリソースを仮想Solaris環境であるzoneに割り当てる機能です。
複数の業務を1つのシステムで動作させるとき、業務と同じ数のzoneを作成して、1つのzoneで1つの業務が動作するようにします。Solarisリソースマネージャを利用して、zoneごとにリソースを配分することで、あるzoneの業務に処理が集中して負荷が上がっても、他のzoneは影響を受けることなく業務を実行できます。
また、リソースを使用状況に応じて動的に構成変更できます。複数のzoneで動作している業務負荷のピークとなる時間が異なる場合、負荷変動にあわせてリソースを移動させることで、リソースを有効活用できます。
特長 |
|
効果 |
- 業務の優先順位に応じて、リソースを割り当て
- 状況に応じて動的にリソースの配分を変更可能(ダイナミックリソースプール)
|
 |
- 特定の業務におけるリソース占有を防止
- リソースを最大限に活用できるようなシステム設計が可能
|
リソースプール
リソースプールとは、CPUをグループ化して、zoneに割り当てる単位のことです。プロセッサセットとスケジューリングクラスで構成されます。
- プロセッサセット(pset)
CPUをグループ化する単位で、リソースプールに割り当てるCPUの個数を設定します。
- スケジューリングクラス(FSSとTS)
リソースプールは、指定されたスケジューリングクラスに基づいて、CPUリソースをzone上のプロセスに割り当てます。
リソースプールに設定するスケジューリングクラスは、TSとFSSの2つが一般的です。
FSS(Fair Share Scheduler)は、zone毎に設定するCPU使用率(CPUシェア数)に基づいて、1つのリソースプールを共有しているzone間でCPUリソースを配分するスケジューラです。例えばzoneA, B のCPU使用率を4:1と設定した場合、利用可能なCPUリソースのうち、zoneAは80%、zoneBは20%の割合で利用することができます。
TS(Time Share Scheduler )はSolaris のデフォルトのスケジューラで、 CPUリソースをプロセス毎に平等に割り当てます。特定のプロセスに対して集中的にCPUを割り当てることはできません。

zoneとリソースプール
zoneは起動時に使用するリソースプールを1つ割り当てます(以下、結合と表現)。1つのリソースプールは複数のzoneに結合させることができ、FSSにより各zoneに割り当てるCPUリソースの割合を設定します。1つのzoneに複数のリソースプールを結合することはできません。
リソースプールはデフォルト定義(pool_default )が用意されていて、global zoneはpool_defaultが固定で結合されています。また、zone起動時に指定のリソースプールが結合されなかった場合、 自動的にpool_defaultが結合されます。

ダイナミックリソースプール
CPUの利用状況に応じて、動的にCPUをリソースプール間で移動したり、zoneへの割り当ての比率を変えたりすることができます。コマンドラインによる移動だけではなく、しきい値の設定により自動でCPUを移動させることもできます。
