この章では、パーティション・ワーク・マネージャおよびそれらの構成方法について説明します。Fusion Middleware Control (FMWC)、WLS管理コンソール、WLSTまたはREST APIを使用できます。この章では、適宜追加情報について、Fusion MiddlewareとWebLogic Serverのドキュメント・セットおよびオンライン・ヘルプを参照します。
この章の内容は次のとおりです。
パーティション・ワーク・マネージャは、パーティション間にスレッド使用ポリシーを設定します。各パーティションのワーク・マネージャ・スレッド数の制限、および各パーティションのスレッド使用時間に基づいたスレッド使用割当ての管理を行うよう構成できます。相対的なスレッドの使用を規定する際に重要なことは、同じWLSインスタンスを共有する様々なパーティション間で適切なサービスの質(QoS)および公平性を提供することです。それが実現できないと、1つのパーティションのローグ・アプリケーションによって他のパーティションのスレッド・リソースが不足して、適切に機能しなくなる可能性があります。
パーティション・ワーク・マネージャは、パーティション内でのリソース管理を提供します。管理者は、ランタイム環境およびその共有方法を把握しています。パーティション・ワーク・マネージャをドメイン・レベルで構成し、それらを作成時にパーティションに割り当てます。これらの事前定義済パーティション・ワーク・マネージャによって、管理者はワーク・マネージャ構成を標準化できます(たとえば、ビジネスで重要なアプリケーションが含まれるすべてのパーティションが、ビジネスで重要なパーティション・ワーク・マネージャを参照できます)。
管理者は、特定のパーティション(場合によってはすべてのパーティション)用にパーティション・ワーク・マネージャをカスタマイズする必要がある場合もあります。このシナリオでは、パーティション・ワーク・マネージャをパーティション構成内に(埋め込んで)構成します。このユースケース用にパーティション・ワーク・マネージャ構成を事前定義する必要はありません。
複数のドメイン・パーティションで使用するためにドメインにパーティション・ワーク・マネージャを定義できます。または、特定のパーティションのみで使用するためにそのドメイン・パーティション自体にパーティション・ワーク・マネージャ属性を定義できます。パーティション・ワーク・マネージャが定義されていない場合は、デフォルトのパーティション・ワーク・マネージャの設定値が適用されます。
パーティション・ワーク・マネージャは複数のドメイン・パーティションに使用できます。ただし、ドメイン・パーティションは1つのパーティション・ワーク・マネージャにのみ関連付けることができます。
パーティション構成には次のいずれかを含めることができます。
<partition-work-manager-ref>
- ドメイン・レベルで構成されているパーティション・ワーク・マネージャを参照します。
<partition-work-manager>
- パーティション構成内にパーティション・ワーク・マネージャ設定を埋め込みます。
<partition-work-manager>
と<partition-work-manager-ref>
以外 - パーティション・ワーク・マネージャ設定にデフォルト値を適用します。
パーティション・ワーク・マネージャは、パーティション内のワーク・マネージャによるスレッドの使用を制限する一連のポリシーを定義します。これらはドメインには適用されません。
パーティション・ワーク・マネージャを構成する主な手順は、次のとおりです。
パーティション・ワーク・マネージャの名前を入力します。
オプションで、「フェア・シェア」値(すべてのパーティションのスレッド使用量と比較して、そのパーティションに必要なスレッド使用率)を入力します。WLSドメインで実行しているすべてのパーティションのこの値の合計が100になることをお薦めします。デフォルトでは、パーティションのフェア・シェア値は50です。
オプションで、「最小スレッド数制約」(パーティションに構成されている最小スレッド制約を満たすために作成できるスタンバイ・スレッド数の上限)を入力します。
最小スレッド制約により、サーバーがデッドロックを防止するためにワーク・マネージャに割り当てるスレッド数が保証されます。これでワーク・マネージャは構成済のフェア・シェアより多くのスレッド使用時間を受け取り、パーティションは同じWLSサーバー・インスタンスの他のパーティションと比較してより多くのスレッド使用時間を取得できます。
オプションで、WLSドメインに構成されたパーティションごとに最小スレッド制約値の制限を指定できます。構成されると、パーティションに構成された最小スレッド制約値に上限が設定されます。パーティションにおけるすべての最小スレッド制約の構成値の合計がこの構成値を超えた場合、警告メッセージが記録され、WLSはスレッド・プールが制約に割り当てているスレッド数を減らします。
デフォルトでは、パーティションに最小スレッド制約制限は設定されていません。
オプションで、「最大スレッド数制約」(いつでも自己チューニング・スレッド・プールがパーティションで処理できる同時リクエストの最大数)を入力します。
最大スレッド制約は、パーティションがスレッド・リソースのフェア・シェアを超えて使用しないようにする場合、特にスレッドがI/Oでブロックされ、応答してしないリモート・サーバーからのレスポンスを待機している場合などの異常な状況において役立ちます。そのようなシナリオで最大スレッド制約を設定すると、一部のスレッドがWLSインスタンスの他のパーティションからのリクエストの処理に確実に使用できるようになります。
オプションで、共有容量の制約(割合としての、サーバー内のパーティションに存在できるリクエストの総数)を入力します。
パーティションの作業リクエストの数を制限するワーク・マネージャのパーティション共有容量。この制限には、実行中の作業リクエストまたはキューに入れられて使用可能なスレッドを待機しているワーク・リクエストが含まれます。制限を超えると、WLSはパーティションから発行された特定のリクエストの拒否を開始します。値は、WLSサーバー・インスタンス全体でリクエスト数を抑制するOverloadProtectionMBean
のsharedCapacityForWorkManagers
オプションの構成に従って、WLSサーバー全体の容量の割合で表されます。ワーク・マネージャのパーティション共有容量は、1から100パーセントの間の値にする必要があります。
次の例は、WLSTを使用してパーティション・ワーク・マネージャを定義する方法を示しています。
次の例では、ドメイン・レベルのパーティション・ワーク・マネージャ(myPartitionWorkManager
)を作成して構成します。
# Creates a Partition Work Manager at the domain level edit() startEdit() cd('/') cmo.createPartitionWorkManager('myPartitionWorkManager') activate() # Configures the Partition Work Manager startEdit() cd('/PartitionWorkManagers/myPartitionWorkManager') cmo.setSharedCapacityPercent(50) cmo.setFairShare(50) cmo.setMinThreadsConstraintCap(0) cmo.setMaxThreadsConstraint(-1) activate()
パーティション・ワーク・マネージャは複数のドメイン・パーティションに使用できます。ただし、ドメイン・パーティションは1つのパーティション・ワーク・マネージャにのみ関連付けることができます。次の例では、ドメイン・レベルのパーティション・ワーク・マネージャ(myPartitionWorkManager
)をパーティション(Partition-0
)に関連付けます。
# Associate a domain-level Partition Work Manager with a Partition edit() startEdit() cd('/Partitions/Partition-0') cmo.destroyPartitionWorkManager(None) cmo.setPartitionWorkManagerRef(getMBean('/PartitionWorkManagers/myPartitionWorkManager')) activate()
次の例では、ドメイン・パーティション(Partition-1
)でパーティション・ワーク・マネージャ属性を定義して、そのパーティションのみで使用されるようにします。
# Defines Partition Work Manager attributes within the partition edit() startEdit() cd('/Partitions/Partition-1') cmo.createPartitionWorkManager('Partition-1-PartitionWorkManager') cd('/Partitions/Partition-1/PartitionWorkManager/Partition-1-PartitionWorkManager') cmo.setSharedCapacityPercent(50) cmo.setFairShare(50) cmo.setMinThreadsConstraintCap(0) cmo.setMaxThreadsConstraint(-1) activate()
config.xml
ファイル内のPartition-0
およびPartition-1
で定義されたパーティション・ワーク・マネージャ要素に注目してください。
<partition> <name>Partition-0</name> <resource-group> <name>default</name> </resource-group> <default-target>VirtualTarget-0</default-target> <available-target>VirtualTarget-0</available-target> <realm>myrealm</realm> <partition-id>318e0d69-a71a-4fa6-bd7e-3d64b85ec2ed</partition-id> <system-file-system> <root>C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain/partitions/Partition-0/system</root> <create-on-demand>true</create-on-demand> <preserved>true</preserved> </system-file-system> <partition-work-manager-ref>myPartitionWorkManager</partition-work-manager-ref> </partition> <partition> <name>Partition-1</name> <resource-group> <name>default</name> </resource-group> <default-target>VirtualTarget-1</default-target> <available-target>VirtualTarget-1</available-target> <realm>myrealm</realm> <partition-id>8b7f6bf7-5440-4edf-819f-3674c630e3f1</partition-id> <system-file-system> <root>C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain/partitions/Partition-1/system</root> <create-on-demand>true</create-on-demand> <preserved>true</preserved> </system-file-system> <partition-work-manager> <name>Partition-1-PartitionWorkManager</name> <shared-capacity-percent>50</shared-capacity-percent> <fair-share>50</fair-share> <min-threads-constraint-cap>0</min-threads-constraint-cap> <max-threads-constraint>-1</max-threads-constraint> </partition-work-manager> </partition> <partition-work-manager> <name>myPartitionWorkManager</name> <shared-capacity-percent>50</shared-capacity-percent> <fair-share>50</fair-share> <min-threads-constraint-cap>0</min-threads-constraint-cap> <max-threads-constraint>-1</max-threads-constraint> </partition-work-manager> </domain>
詳細は、次を参照してください:
『Fusion Middleware ControlによるOracle WebLogic Serverの管理』のWebLogic Serverのパーティション・ワーク・マネージャに関する項。
『Oracle WebLogic Server Administration Consoleオンラインヘルプ』のパーティション・ワーク・マネージャに関する項。