[FMW, Java, WLS] Resource Consumption Management in WebLogic Server MultiTenant 12.2.1 to Control Resource Usage of Domain Partitions

原文はこちら。
https://blogs.oracle.com/WebLogicServer/entry/using_resource_consumption_management_in

このエントリは先頃発表されたOracle WebLogic Server 12.2.1の新機能をご紹介する一連のエントリで、その中のすばらしいパフォーママンスの分離機能をご紹介するものです。
Announcing Oracle WebLogic Server 12.2.1
https://blogs.oracle.com/WebLogicServer/entry/announcing_oracle_weblogic_server_12
[WLS, FMW] Announcing Oracle WebLogic Server 12.2.1 
http://orablogs-jp.blogspot.jp/2015/10/announcing-oracle-weblogic-server-1221.html 
エンタープライズでの「do more with less(より少ないリソースでよりたくさんのことを)」という強い圧力に伴い、システム管理者やデプロイヤは、エンタープライズデプロイメントのために密度を高め、ハードウェア利用率の向上を常に目指しています。WebLogic Server Multitenantでのmicro-containersやプラガブルなドメインパーティションのサポートにより、システム管理者が、既存のサイロ化されたビジネスに不可欠なJava EEデプロイメントを一つのマルチテナントドメインに配置することができます。
Domain Partitions for Multi-tenancy in WebLogic Server 12.2.1
https://blogs.oracle.com/WebLogicServer/entry/domain_partitions_for_multi_tenancy
[WLS, FMW] Domain Partitions for Multi-tenancy in WebLogic Server 12.2.1
http://orablogs-jp.blogspot.jp/2015/11/domain-partitions-for-multi-tenancy-in.html

Announcing Oracle WebLogic Server 12.2.1
https://blogs.oracle.com/WebLogicServer/entry/announcing_oracle_weblogic_server_12
[WLS, FMW] Announcing Oracle WebLogic Server 12.2.1 
http://orablogs-jp.blogspot.jp/2015/10/announcing-oracle-weblogic-server-1221.html
例えば、システム管理者が、RedとBlueという2つのパーティションを共有JVM(WebLogic Multitenant Serverインスタンス)に作成し、Java EEアプリケーションとリソースをそれらにデプロイするとしましょう。システム管理者は、あるパーティション(ここではBuleとしておきます)のアプリケーションが、サーバ・インスタンスのJVMヒープ、OS(CPU、ファイルディスクリプタ)といったすべての共有リソースを占有し、Redパーティションのアプリケーションがこうしたリソースにアクセスにあたって悪影響を与えることは避けたいと思っていることでしょう。

Runtime Isolation

したがって、既存のエンタープライズワークロードを一つのマルチテナントサーバーインスタンスに集約・統合しつつ、システム管理者はドメインパーティションに共存することにより共有されるリソースを、よりうまく管理(追跡、管理、監視、制御)する必要があります。そのために
  • あるパーティションがすべての利用可能なリソースを消費せず、他の共存するパーティションからリソースを使い尽くすことはしません。これにより、システム管理者はすべての共存するパーティションに対し、一貫したパフォーマンスの計画ならびにサポートが可能になります。
  • 共存するパーティションに対し、公平かつ効率的な利用可能なリソースを割り当てます。これにより、システム管理者は集積度を向上して大きなコスト削減を実現しながら、自信を持って、同じ環境に補完的なワークロードを配置することができます。

Control Resource Consumption Management

Resources

Fusion Middleware 12.2.1では、Oracle WebLogic Server Multitenantは、以下のリソースで確立したリソース管理ポリシーをサポートします。
  • Heap Retained(保持しているヒープ):パーティションが保持するヒープのサイズを追跡、制御します。
  • CPU Utilization(CPU利用率):パーティションが利用するCPUの利用率を追跡、制御します。
  • Open File Descriptors(オープン状態のファイルディスクリプタ):パーティションが利用する(File I/O、ソケットなどで利用しているために)開いているファイルディスクリプタを追跡、制御します。

    Recourse Actions

    トリガーが破られると、それに対応してリコースアクションを自動的に実施することでシステム管理者は反応したいと思うかもしれません。WebLogic Serverでは以下のアクションが標準で利用可能です。
    • Notify(通知):閾値を上回ったことを管理者に通知
    • Slow(減速):主にワークマネージャの設定を操作することで、パーティションがリソースを利用できづらくする。特定の状況でシステムに自己修正させる必要があります。
    • Fail(失敗):リソースへのリクエストを却下する。つまり例外を発生させる。現時点ではファイルディスクリプタのみサポート。
    • Stop(停止): 究極のステップとして、現在のサーバーインスタンスのパーティションを保護するため、シャットダウンシーケンスを呼び出す。

      Policies

      Oracle WebLogic Server Multitenantのリソース消費管理機能はシステム管理者がリソースに対しリソース消費管理ポリシーを指定し、ポリシーに反した場合にはWebLogic Serverに対して自動的に特定のリコースアクション(償還要求、返還要求)を実行するよう指示できます。ポリシーは以下の2種類のうち1個として作成されます。
      • Trigger: これは、パーティションのリソース利用状況が予測可能で、「パーティションのリソース利用状況が閾値を超える場合、リコースアクションを実行する」という形の場合に有用です。
      例えば、すべてのヒープを使い切らないようにするというサンプルのリソース消費ポリシーをシステム管理者がBlueパーティションで確立する場合、以下のようになります。

      When the "Retained Heap" (Resource) usage for the "Blue" (Partition) crosses "2 GB" (Trigger), "stop" (Action) the partition.
      Blue(パーティション)の「保持されたヒープ」(リソース)利用状況が2GB(トリガー)を超えた場合、パーティションを「停止」(アクション)する。
      • Fair share: WebLogic Serverのワークマネージャ・フェアシェアポリシーと類似していますが、このポリシーを使うと、システム管理者は有限サイズの共有リソースのシェア(占有率)をパーティションに対して指定することができます。WebLogic Serverは、システム管理者が割り当てた「シェア」を尊重しつつ、競合するコンシューマによって、このリソースが効率的(かつ公平)に共有されることを保証します。
      例えば、リソース消費ポリシーのサンプルとして、BlueパーティションよりもRedパーティションを好むシステム管理者が、CPU利用率のリソースに対するフェアシェアを60:40でRedパーティションが有利になるように設定することができます。
      補完的なワークロードが共存するパーティションにデプロイされている場合、フェアシェアポリシーを使うと、リソースを最大限に活用できます。Blueパーティションにはリクエストがない、もしくは限られたリクエストのみある場合、Redパーティションは利用可能なCPU時間を盗んですべて使い切ることができます。トラフィックがBlueパーティションで再開し、CPUの競合があると、WebLogic Serverは、システム管理者によって設定されたフェアシェア比に従い、CPU時間を割り当てます。このおかげで、これらのリソースのパーティションへの割り当て方針を保持しながら、システム管理者は単一の共有インフラストラクチャを再利用することができ、その結果インフラストラクチャのコストを節約することができます。
      ポリシー設定は、ドメインレベルで定義します。複数のプラガブルなパーティションで再利用することも、パーティションに対して固有に定義することもできます。ポリシー設定は、複数のリソースに対し、独自のビジネス要件を満たすために、トリガベースのポリシーやフェアシェアポリシーの様々な組合せを柔軟にサポートします。ポリシーは、動的に再構成することができるので、ポリシーを必要とするパーティションの再起動は不要です。
      下図は、システム管理者が2個のリソース消費管理ポリシー(より厳しい「トライアル」ポリシーと緩い「承認された」ポリシー)をどのように構成し、個々のドメインパーティションにどのように割り当てるのかを示しています。ヒープとCPUリソースが2個のドメインパーティション割り当てられていて、各々に関連づけられたポリシーによって管理されています。
      WLS 12.2.1 RCM resource manager sample schematic

      Enabling Resource Management

      WebLogic Server 12.2.1のリソース消費管理機能はJDK 8u40のリソース管理機能を使っています。WebLogic Server 12.2.1のリソース消費管理機能を使うには、Oracle JDK 8u40とG1GCが必要です。WebLogic Server Multitenantでは、リソース管理を有効化するために、以下のJVMパラメータを追加する必要があります。
      -XX:+UnlockCommercialFeatures -XX:+ResourceManagement -XX:+UseG1GC

      Track Resource Consumption

      リソース消費のメトリックもパーティション毎に利用でき、監視MBean(PartitionResourceMetricsRuntimeMBean)を使って取得できます。パーティション毎の細かい利用状況のメトリックがこの監視Mbeanから取得できるので、システム管理者はこれらのメトリックを追跡、サイジング、分析、監視、ビジネス固有のウォッチ、ハーベスタWLDFルール構成の目的で利用できます。

      Conclusion

      WebLogic Server Multitenantのリソース消費マネージャはランタイムを分離し、アプリケーションが共有・統合環境で動作する上で必要な保護を提供します。

      For More Information

      このエントリはリソース消費管理機能の表面をちょっと触った程度の内容にすぎません。この機能ならびに、WebLogic Scripting Tool(WLST)やFusion MIddleare Controlを使って、統合されたMultitenantドメインで、リソース消費管理のポリシーを構成する方法、ベストプラクティスを知りたい方は、以下の技術文書に詳細が記載されていますのでご覧ください。
      Resource Consumption Management (RCM) in Oracle WebLogic Server Multitenant (MT) - Flexibility and Control Over Resource Usage in Consolidated Environments
      https://blogs.oracle.com/WebLogicServer/resource/20151027-rcm-overview-entry-siva/wls-1221-rcm-technical-overview-v1.0.pdf 

      以下のWeblogic Server MultiTenantのドキュメントにもこの機能の利用方法の詳細が記載されています。
      Oracle® Fusion Middleware Using WebLogic Server Multitenant 12c (12.2.1)
      Configuring Resource Consumption Management
      https://docs.oracle.com/middleware/1221/wls/WLSMT/config_rcm.htm

      この機能は、Oracle JDKとWebLogic Serverの緊密な統合の結果です。もしサンフランシスコで開催されるOracle OpenWorld 2015に参加するのであれば、Multitenancy in Java: Innovation in the JDK and Oracle WebLogic Server 12.2.1" [CON8633] (2015年10月28日(水)13時45分 / Moscone South 302)と題したセッションでこの機能の詳細をお伝えします。

      (訳注)
      このセッションのスライドが公開されています。OpenWorldのセッションカタログのページからダウンロードできます。
      Multitenancy in Java: Innovation in the JDK and Oracle WebLogic Server 12.2.1 [CON8633]
      https://events.rainfocus.com/oow15/catalog/oracle.jsp?search=CON8633&search.event=openworldEvent

      0 件のコメント:

      コメントを投稿