このセクションでは、リソースを動的に割り当てるために poold で使用される手順と要因について説明します。
poold プロセスの有効範囲内で使用できるすべてのリソースが、使用可能なリソースと見なされます。1 つの Oracle Solaris インスタンスが最大の制御範囲になります。
ゾーンが有効になっているシステムの場合、実行中の poold インスタンスの有効範囲は、大域ゾーンに制限されます。
リソースプールには、アプリケーションで消費できるすべてのシステムリソースが含まれます。
実行中の Oracle Solaris インスタンスごとに、1 つのパーティションには、CPU など 1 種類のリソースを割り当てる必要があります。1 種類のリソースを 1 つまたはそれ以上のパーティションに割り当ててもかまいません。各パーティションには、一意のリソースセットが含まれます。
たとえば、4 つの CPU と 2 つのプロセッサセットを持つシステムは、次のように設定されます。
pset 0: 0 1
pset 1: 2 3
ここで、コロンのあとの 0、1、2、3 という数字は、CPU の ID を表しています。これら 2 つのプロセッサセットで、4 つの CPU すべてが使用されていることに注目してください。
このシステムで次のような設定は不可能です。
pset 0: 0 1
pset 1: 1 2 3
CPU 1 を同時に割り当てることができる pset は 1 つだけなので、このような設定はできません。
リソースが属しているパーティション以外のパーティションからは、そのリソースにアクセスすることはできません。
使用可能なリソースを発見するために、poold はアクティブなプール構成を調べてパーティションを見つけます。制御対象となっているリソースの種類ごとに、すべてのパーティションに含まれているすべてのリソースが集計され、使用可能なリソースの合計量が求められます。
poold では、このリソース量を基にして処理が行われます。ただし、この基本量に制約が適用され、poold で割り当てを行う必要がある際の柔軟性が制限されることもあります。使用可能な制約については、構成の制約を参照してください。
poold の制御範囲とは、効率のよい区分と管理を主に poold が担当している、使用可能なリソースセットのことです。ただし、この制御範囲にあるリソースを操作できるメカニズムがほかにもあり、それが構成に影響を与えることもあります。poold がアクティブになっている間に特定のパーティションが制御範囲外になった場合、poold は使用可能なリソースを適切に操作することによってその制御を取り戻そうとします。poold デーモンは、有効範囲内に追加のリソースを見つけられない場合、リソース不足に関する情報をログに記録します。
poold は通常、その制御範囲にあるリソースの使用率を監視することに時間の大部分を費やします。このモニタリングは、作業負荷に依存する目標が満たされているかどうかを確認するために実行されます。
たとえば、プロセッサセットの場合、セット内のすべてのプロセッサについてすべての測定が実行されます。リソース使用効率は、サンプリング間隔に対して、リソースが使用された時間の割合を示します。リソース使用効率はパーセンテージで表され、0 - 100 の値です。
構成の制約と目標で説明した指示は、システムが目標を満たさないことを検出するために使用されます。これらの目標は、作業負荷に直接関連しています。
ユーザーが構成した目標を満たしていないパーティションは、制御違反です。制御違反には、同期と非同期の 2 種類があります。
同期目標違反は、デーモンによって作業負荷のモニタリング中に検出されます。
非同期目標違反は、デーモンのモニタリング動作とは無関係に発生します。
非同期の目標違反は、次のようなイベントによって引き起こされます。
制御範囲に対してリソースが追加または削除された。
制御範囲が再構成された。
poold リソースコントローラが再起動された。
作業負荷に関連しない目標が目標関数の評価に与える影響は、評価のたびに一定であると見なされます。作業負荷に関連しない目標が再評価されるのは、いずれかの非同期違反によって再評価処理が引き起こされたときだけです。
リソースコントローラは、リソースを消費するプロセスでリソースが不足していると判定した場合、まずそのリソースを増やして性能を改善しようとします。
制御範囲について構成で指定された目標を満たすように、別の構成が検討され評価されます。
この処理では、リソースの移動結果をモニターし、各リソースパーティションの応答性を評価しながら、徐々に細かい調整が行われます。決定履歴を参照して、それまでに行なった再構成のうちで改善効果を示さなかったものが削除されます。履歴データの関連度をより詳しく評価するために、プロセスの名前や数量といったほかの情報も使用されます。
修正操作を実行できない場合、デーモンは状況をログに記録します。詳細は、poold のロギング情報を参照してください。