Go to main content
Oracle® Solaris 11.3 でのリソースの管理

印刷ビューの終了

更新: 2016 年 11 月
 
 

構成の制約と目標

poold は、管理者の指示に基づいて再構成を行います。これらの指示は、一連の制約および目標として指定します。poold はこれらの指定に基づき、可能性のあるさまざまな構成を、既存の構成に対する相対値として決定します。次に poold は、現在の構成のリソース割り当てを変更して、候補となる新しい構成を生成します。

構成の制約

制約は、構成に加えることのできる変更を一部除外することで、作成可能な構成の範囲に影響を与えます。libpool 構成で次の制約を指定できます。

  • CPU 割り当ての最小値と最大値

  • セットから移動できない固定コンポーネント

  • プールの重要要素

プールプロパティーの詳細は、libpool(3LIB) のマニュアルページとプールのプロパティーを参照してください。

使用方法については、構成の制約を設定する方法を参照してください。

pset.min プロパティーと pset.max プロパティーの制約

これら 2 つのプロパティーは、プロセッサセットに割り当てることのできるプロセッサの最小数と最大数を制限します。これらのプロパティーの詳細については、表 4を参照してください。

同じ Oracle Solaris インスタンスのリソースパーティション内では、これらの制約の範囲内で、あるパーティションから別のパーティションにリソースを割り当てることができます。リソースセットに関連付けられているプールに結合することで、リソースにアクセスできるようになります。この結合はログイン時に実行されるか、または、PRIV_SYS_RES_CONFIG 特権を持っている管理者が手動で行います。

cpu.pinned プロパティーの制約

cpu-pinned プロパティーは、DRP で特定の CPU を現在のプロセッサセットから移動してはならないことを示します。この libpool プロパティーを設定すると、プロセッサセット内で実行されている特定のアプリケーションでのキャッシュ使用効率を最大限に高めることができます。

このプロパティーの詳細については、表 4を参照してください。

pool.importance プロパティーの制約

pool.importance プロパティーは、管理者が定義した、プールの相対的な重要度を示します。

構成の目標

目標は制約と同様の方法で指定されます。目標の全一覧は表 4に記載されています。

目標には 2 つのカテゴリがあります。

作業負荷に依存する目標

作業負荷に依存する目標とは、システムで実行される作業負荷の性質によって変化する目標です。たとえば、utilization 目標などがあります。リソースセットの使用効率の数値は、そのセットでアクティブになっている作業負荷の性質によって変化します。

作業負荷に依存しない目標

作業負荷に依存しない目標とは、システムで実行される作業負荷の性質によって変化しない目標です。たとえば、CPU の locality 目標などがあります。リソースセットの近傍性の評価値は、そのセットでアクティブになっている作業負荷の性質によって変化することはありません。

次の 3 種類の目標を定義できます。

名前
有効な要素
演算子
wt-load
system
なし
なし
locality
pset
なし
loose | tight | none
utilization
pset
< > ~
0100%

目標は、libpool 構成内のプロパティー文字列に格納されます。プロパティー名は、次のとおりです。

  • system.poold.objectives

  • pset.poold.objectives

目標の構文は次のとおりです。

  • objectives = objective [; objective]*

  • objective = [n:] keyword [op] [value]

どの目標にも、オプションで重要性を表す接頭辞を付けることができます。重要性の値は目標に乗算され、この目標が目標関数の評価に与える影響を高めます。指定できる範囲は、0 から INT64_MAX (9223372036854775807) までです。指定されていない場合、重要性のデフォルト値は 1 です。

一部の要素タイプでは、複数の種類の目標がサポートされています。pset などはその一例です。このような要素には、複数の種類の目標を指定できます。また、1 つの pset 要素に複数の使用効率目標を指定することもできます。

使用例については、構成の目標を定義する方法を参照してください。

wt-load 目標

wt-load 目標では、リソースの使用効率に合わせてリソースを割り当てるような構成が有利に導かれます。この目標が有効になっていると、より多くのリソースを使用するリソースセットには、より多くのリソースが与えられることになります。wt-load重み付けされた負荷 (weighted load) を意味します。

最小値と最大値のプロパティーを使って満足のいく制約を設定したあとで、これらの制約の範囲内でデーモンが自由にリソースを操作できるようにする場合に、この目標を使用してください。

locality 目標

locality 目標は、近傍性グループ (lgroup) データによって測定される近傍性が、選択された構成に対して与える影響を変化させます。近傍性は応答時間と定義することもできます。lgroup は、CPU リソースとメモリーリソースを表します。lgroup は、Oracle Solaris システムでリソースどうしの距離を調べるために使用されます。測定単位は時間です。

この目標には、次の 3 つの値のいずれかを指定できます。

tight

この値を設定すると、リソースの近傍性を最大にするような構成が有利に導かれます。

loose

この値を設定すると、リソースの近傍性を最小にするような構成が有利に導かれます。

none

この値を設定すると、どのような構成が有利になるかは、リソースの近傍性に依存しません。これは locality 目標のデフォルト値です。

一般に、locality 目標は tight に設定することをお勧めします。ただし、メモリー帯域幅を最大にする場合や、リソースセットに対する DR 操作の影響を最小にする場合は、この目標を loose に設定するか、デフォルト値の none にしておいてください。

utilization 目標

utilization 目標では、指定された使用効率目標を満たしていないパーティションにリソースを割り当てるような構成が有利に導かれます。

この目標は、演算子と値で指定されます。演算子は次のとおりです。

<

「小なり」演算子は、指定された値が最大のターゲット値であることを示します。

>

「大なり」演算子は、指定された値が最小のターゲット値であることを示します。

~

「ほぼ等しい」演算子は、指定された値がターゲット値であり、いくらかの変動が許容されることを示します。

pset には、演算子の種類ごとに使用効率目標を 1 つ設定できます。

  • ~ 演算子を設定した場合、< 演算子や > 演算子は設定できません。

  • < 演算子や > 演算子を設定した場合、~ 演算子は設定できません。< 演算子の設定と > 演算子の設定が互いに矛盾してはならないことに注意してください。

< 演算子と > 演算子の両方を設定すると、範囲を指定できます。これらの値は、重複しないように検証されます。

構成目標の例

次の例では、pset に対する次のような目標が poold によって評価されます。

  • utilization を 30% から 80% の範囲に保つ必要がある。

  • プロセッサセットの locality を最大にする必要がある。

  • 各目標の重要性はデフォルト値の 1 とする。

使用例 3  poold の目標の例

pset.poold.objectives "utilization > 30; utilization < 80; locality tight"

その他の使用例については、構成の目標を定義する方法を参照してください。

poold のプロパティー

プロパティーには 4 つのカテゴリがあります。

  • 構成

  • 制約

  • 目標

  • 目標パラメータ

表 4  定義済みのプロパティー名
プロパティー名
タイプ
カテゴリ
説明
system.poold.log-level
string
構成
ロギングレベル
system.poold.log-location
string
構成
ログの場所
system.poold.monitor-interval
uint64
構成
モニタリングのサンプリング間隔
system.poold.history-file
string
構成
決定履歴の場所
pset.max
uint64
制約
このプロセッサセットに割り当てられる CPU の最大数
pset.min
uint64
制約
このプロセッサセットに割り当てられる CPU の最小数
cpu.pinned
bool
制約
CPU がこのプロセッサセットに固定されているかどうか
system.poold.objectives
string
目標
poold の目標式の構文に従った書式付き文字列
pset.poold.objectives
string
目標
poold の目標式の構文に従った書式付き文字列
pool.importance
int64
目標パラメータ
ユーザーが割り当てた重要性