プライマリ・コンテンツに移動
Oracle® Data Minerインストレーションおよび管理ガイド
リリース18.1
E98578-01
目次へ移動
目次
索引へ移動
索引

前
前へ
次

6 Oracle Data Minerのシステム・リソースの管理

この章では、Oracle Data Minerをサポートするためのシステム最適化の助けになる情報を提供します。

Oracle Data Minerのリソース管理の概要

Oracle Databaseの機能とOracle Data Minerリポジトリに用意されているオプションを使用して、Oracle Data Minerのシステム・リソースを効果的に管理できます。

次の方法で、Oracle Data Minerのシステム・リソースを効果的に管理できます。

  • Oracle Data Minerセッションを管理するには、Oracle Database Resource Managerを使用して適切なリソース・プランを開発します。

  • ワークフロー実行を管理するには、Oracle Schedulerで使用されるOracle Data Minerのデフォルトのジョブ・クラスを、適切なリソース・プランを持つジョブ・クラスに変更します。

  • モデル構築プロセスを管理するには、Oracle Data Minerのデフォルトの最大同時モデル構築数を変更します。

  • パラレル問合せ処理を管理するには、Oracle Data Minerのデフォルトのパラレル問合せ設定を変更して、ユーザーが個々のノードとワークフローのパラレル処理を指定しないようにします。

Oracle Data Minerユーザー・セッションへのリソースの割当て

Database Resource Managerを使用して、セッションのグループに、セッション属性に基づいてシステム・リソースを割り当てるリソース・プランを作成できます。

Database Resource Managerは、CPU時間を割り当て、パラレル問合せ処理を構成し、セッション数を制限し、通常はオペレーティング・システムによって制御されるシステム動作の様々な面を制御します。複数のアプリケーションが同時実行されてシステム・リソースを奪い合うデータベースでは、Oracle Database Resource Managerを使用してワークロードを分散し、全体的なパフォーマンスを最適化することができます。たとえば、データベースで同時に実行されている、ETL、OLAP、データ・マイニングおよびレポーティングといった各ワークロードの要求をバランスすることができます。

Oracle Data Minerワークフローは、特に変換や大きなデータ・セットが関与する場合に、システム・リソースに対して大量の要求をする可能性があります。複数のアプリケーションの要求に対処する必要があるデータベースでは、他のアプリケーションでのOracle Data Minerセッションの影響を限定するリソース・プランを作成して、他のアプリケーションによりOracle Data Minerのパフォーマンスが損なわれるのを防止できます。

例6-1は、Oracle Data Minerの単純なリソース・プランの作成例です。SIMPLE_RESOURCE_PLANと呼ばれるリソース・プランは、DATA_MINER_GROUPおよびOTHER_GROUPSという、2つのコンシューマ・グループを作成します。このプランは、CPUリソースの50%をOTHER_GROUPSに、残りをDATA_MINER_GROUPに割り当てます。DATA_MINER_GROUPDMUSERアカウントにマップされ、他のユーザーはOTHER_GROUPSグループにマップされます。

例6-1 Oracle Data Minerセッションの単純なリソース・プラン

CONNECT sys as sysdba;
Enter password: password
-- creating a pending area is the first step in defining 
-- consumer groups and resource plans
EXEC dbms_resource_manager.create_pending_area();
-- delete old plan (optional)
EXEC dbms_resource_manager.delete_plan_cascade(
               plan => 'SIMPLE_RESOURCE_PLAN');
-- create a custom consumer group for data miner workload
EXEC dbms_resource_manager.create_consumer_group(
               consumer_group => 'DATA_MINER_GROUP', 
               comment => 'Sessions for data miner operations');
-- map DMUSER account to the consumer group
EXEC dbms_resource_manager.set_consumer_group_mapping(
               attribute => dbms_resource_manager.oracle_user, 
               value => 'DMUSER', 
               consumer_group => 'DATA_MINER_GROUP');
-- create a custom resource plan
EXEC dbms_resource_manager.create_plan(
               plan => 'SIMPLE_RESOURCE_PLAN', 
               comment => 'Resource plan for database operations');
-- specifies how much CPU and parallelism 
-- should be allocated to the consumer group
EXEC dbms_resource_manager.create_plan_directive(
               plan => 'SIMPLE_RESOURCE_PLAN',
               group_or_subplan => 'DATA_MINER_GROUP',
               comment => 'Percentage of CPU for DATA_MINER_GROUP', 
               mgmt_p1 => 50, 
               utilization_limit => 55, 
               parallel_degree_limit_p1 => 8, 
               parallel_server_limit => 4);
-- specifies how much CPU should be allocated to the required OTHER_GROUPS
EXEC dbms_resource_manager.create_plan_directive(
                plan => 'SIMPLE_RESOURCE_PLAN',
                group_or_subplan => 'OTHER_GROUPS',
                comment => 'Percentage of CPU for OTHER_GROUPS', 
                mgmt_p1 => 50);
-- persist plan to the database
EXEC dbms_resource_manager.submit_pending_area();
-- Now that the resource plan is defined, enable it by setting
-- the resource_manager_plan parameter with the resource plan name
ALTER SYSTEM SET resource_manager_plan = 'SIMPLE_RESOURCE_PLAN'; 
-- DBA can also enable a resource plan for the period of time corresponding 
-- to a job scheduler Window (via the dbms_scheduler.create_window procedure)

関連項目

  • Oracle Database管理者ガイド

モデル構築の管理

マイニング・モデルを構築するプロセスは、大量のシステム・リソースを消費することがあります。MAX_NUM_THREADSリポジトリ・プロパティの値を増減して、システム・リソース全体へのモデル構築の影響を制御できます。

MAX_NUM_THREADSは、Oracle Data Minerセッションのすべてのワークフロー全体で同時実行できるマイニング・モデル構築の最大数を指定します。MAX_NUM_THREADSは、個別に起動された、ワークフローに属していないモデル構築には影響を及ぼしません。

たとえば、あるワークフローが25のモデルを構築しようとしていて、別のワークフローが15のモデルを構築しようとしており、MAX_NUM_THREADSが10である場合、10のモデル構築操作が同時に発生し、残り30のモデル構築はキューに入れられます。遅延された構築プロセスは、完了時に、遅延の理由を説明する警告メッセージを表示します。2つの追加のプロパティ、THREAD_WAIT_TIMEおよびMAX_THREAD_WAITは、モデル構築のキューイングを制御します。詳細は、表6-1を参照してください。

例6-2に、最大同時モデル構築数を10(デフォルト)から15に増やす方法を示します。

このスクリプトにより、次のログが作成されます。

-- value of MAX_NUM_THREADS before update
SELECT property_name, property_num_value 
    FROM ODMRSYS.ODMR$REPOSITORY_PROPERTIES
    WHERE property_name = 'MAX_NUM_THREADS';
PROPERTY_NAME PROPERTY_NUM_VALUE
------------------------------ ----------------------
MAX_NUM_THREADS 10
-- update MAX_NUM_THREADS
UPDATE ODMRSYS.ODMR$REPOSITORY_PROPERTIES
    SET property_num_value = 15
    WHERE property_name = 'MAX_NUM_THREADS';
1 rows updated
-- commit change
commit
committed
-- value of MAX_NUM_THREADS after update
SELECT property_name, property_num_value 
    FROM ODMRSYS.ODMR$REPOSITORY_PROPERTIES
    WHERE property_name = 'MAX_NUM_THREADS';
PROPERTY_NAME PROPERTY_NUM_VALUE
------------------------------ ----------------------
MAX_NUM_THREADS 15

例6-2 最大同時モデル構築数の変更

set echo on;
-- value of MAX_NUM_THREADS before update
SELECT property_name, property_num_value 
    FROM ODMRSYS.ODMR$REPOSITORY_PROPERTIES
    WHERE property_name = 'MAX_NUM_THREADS';
-- update MAX_NUM_THREADS
UPDATE ODMRSYS.ODMR$REPOSITORY_PROPERTIES
    SET property_num_value = 15
    WHERE property_name = 'MAX_NUM_THREADS';
-- commit change
COMMIT;
-- value of MAX_NUM_THREADS after update
SELECT property_name, property_num_value 
    FROM ODMRSYS.ODMR$REPOSITORY_PROPERTIES
    WHERE property_name = 'MAX_NUM_THREADS';

ワークフロー実行の管理

Oracle Data Minerは、ワークフローを、Schedulerジョブとして実行するために、Oracle Database Schedulerに送信します。Oracle Schedulerは、システム・リソースの割り当て方法を制御する様々な機能をサポートしています。Oracle Schedulerを構成すると、実行リクエストの大きなプールを効果的に管理できます。

Oracle Data Minerは、デフォルトのSchedulerジョブ・クラス、DEFAULT_JOB_CLASSを、自身のデフォルトとして使用します。リソース・プランでは、DEFAULT_JOB_CLASSとして実行されるジョブはいかなるコンシューマ・グループにも割り当てられず、デフォルト・クラスを持つジョブの場合、システム・リソースへのアクセスは制限されません。ジョブ・クラスをコンシューマ・グループに基づくクラスに変更するには、Oracle Data Minerリポジトリ・プロパティWORKFLOW_JOB_CLASSを設定します。

例6-3は、負荷の高いワークロード・ジョブにCPUを多く割り当てるために以前に作成されたコンシューマ・グループHEAVY_LOAD_RESOURCE_GROUPに基づいてMINING_CLASSジョブ・クラスを作成できることを示しています。WORKFLOW_JOB_CLASSを更新する場合、ワークフローは、このコンシューマ・グループに制限されたシステム・リソースへのアクセスを伴って実行されます。ワークフローの実行時に、割り当てられたHEAVY_LOAD_RESOURCE_GROUPグループのリソース・プランがアクティブである必要があります。Schedulerのウィンドウを設定して、特定の期間に特定のリソース・プランをアクティブにできます。

例6-3 Oracle Data MinerワークフローのSchedulerジョブ・クラスの変更

connect sys as sysdba;
Enter password: password
EXEC DBMS_SCHEDULER.CREATE_JOB_CLASS(
              job_class_name => 'MINING_CLASS', 
              resource_consumer_group => 'HEAVY_LOAD_RESOURCE_GROUP');
GRANT EXECUTE ON MINING_CLASS to DMUSER;
-- update WORKFLOW_JOB_CLASS
UPDATE ODMRSYS.ODMR$REPOSITORY_PROPERTIES
   SET property_str_value = 'MINING_CLASS'
   WHERE property_name = 'WORKFLOW_JOB_CLASS';
-- commit change
commit;
-- verify value of WORKFLOW_JOB_CLASS after update
SELECT property_name, property_str_value 
   FROM ODMRSYS.ODMR$REPOSITORY_PROPERTIES
   WHERE property_name = 'WORKFLOW_JOB_CLASS';

関連項目

  • Oracle Database管理者ガイド
  • Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス

パラレル処理の管理

Oracle Data Minerのワークフローとビューア、および大部分のData Miningアルゴリズムは、データベースでパラレル処理が有効である場合、その利点を活用できます。INIT.ORAのパラメータは、パラレル処理の動作を制御します。デフォルトでは、パラレル実行は無効になっています(PARALLEL_DEGREE_POLICY=MANUAL)

問合せのパラレル処理は、システムによって決定することも、並列度に設定することもできます。パラレル処理がシステムで決定される場合、データベースが、すべてのSQL文の並列度の値を動的に決定します。

より多くのリソースを使用すれば操作がより早く完了するとの想定で、Oracle Databaseのパラレル機能は最大リソースを使用するように設計されています。マルチユーザー環境では、並列度の使用を増やすとシステム・リソースが速く枯渇し、同時にパラレル文を実行する他のユーザーのリソースを低下させます。

Oracle Data Minerワークフローはパラレル問合せ機能をサポートしているため、ユーザーは特定のノードまたはワークフロー全体のパラレル処理を手動で有効化できます。この機能を無効にするには、Oracle Data Minerリポジトリ・プロパティPARALLEL_QUERY_ON_ALLOWEDFALSEに設定します。デフォルトでは、このプロパティはTRUEに設定されます。例6-4に、Oracle Data Minerのパラレル問合せ処理機能を無効にする方法を示します。

Oracle Data Minerのモデル構築プロセスにより、データベース構成で許可されている場合、多数のパラレル・セッションが生成されることがあります。システム全体への影響を限定するためには、適切なリソース・プランを実装し、必要に応じて、ユーザーがData Minerセッション内でパラレル問合せを設定しないようにします。

例6-4 Oracle Data Minerのワークフローおよびノードのパラレル問合せ機能の無効化

connect sys as sysdba;
Enter password: password
-- value of PARALLEL_QUERY_ON_ALLOWED before update
SELECT property_name, property_str_value 
   FROM ODMRSYS.ODMR$REPOSITORY_PROPERTIES
   WHERE property_name = 'PARALLEL_QUERY_ON_ALLOWED';
-- update PARALLEL_QUERY_ON_ALLOWED
UPDATE ODMRSYS.ODMR$REPOSITORY_PROPERTIES
   SET property_str_value = 'FALSE'
   WHERE property_name = 'PARALLEL_QUERY_ON_ALLOWED';
-- commit change
COMMIT;
-- verify value of PARALLEL_QUERY_ON_ALLOWED after update
SELECT property_name, property_str_value 
   FROM ODMRSYS.ODMR$REPOSITORY_PROPERTIES
   WHERE property_name = 'PARALLEL_QUERY_ON_ALLOWED';
connect sys as sysdba;
Enter password: password
-- value of PARALLEL_QUERY_ON_ALLOWED before update
SELECT property_name, property_str_value 
   FROM ODMRSYS.ODMR$REPOSITORY_PROPERTIES
   WHERE property_name = 'PARALLEL_QUERY_ON_ALLOWED';
-- update PARALLEL_QUERY_ON_ALLOWED
UPDATE ODMRSYS.ODMR$REPOSITORY_PROPERTIES
   SET property_str_value = 'FALSE'
   WHERE property_name = 'PARALLEL_QUERY_ON_ALLOWED';
-- commit change
COMMIT;
-- verify value of PARALLEL_QUERY_ON_ALLOWED after update
SELECT property_name, property_str_value 
   FROM ODMRSYS.ODMR$REPOSITORY_PROPERTIES
   WHERE property_name = 'PARALLEL_QUERY_ON_ALLOWED';

関連項目

  • 『Oracle Database VLDBおよびパーティショニング・ガイド』

システム管理用のOracle Data Minerリポジトリ・プロパティのサマリー

Oracle Data Minerリポジトリでシステム管理プロパティのサマリーを利用できます。

表6-1に、Oracle Data Minerリポジトリで利用できるシステム管理プロパティのサマリーを示します。

表6-1 システム管理用のOracle Data Minerリポジトリ・プロパティ

プロパティ タイプ 説明

PARALLEL_QUERY_ON_ALLOWED

ブール値

ユーザーがノードまたはワークフローに対するパラレル問合せを指定できるかどうかを示します。値はTRUEまたはFALSEです。デフォルトはTRUEです。

MAX_NUM_THREADS

整数

最大同時モデル構築数。デフォルトは10です。

THREAD_WAIT_TIME

整数

MAX_NUM_THREADSに達すると、パラレル・モデル構築数がMAX_NUM_THREADS未満になるまで、未処理のモデル構築プロセスがキューに入れられます。THREAD_WAIT_TIME設定は、パラレル・モデル構築数を確認するまでの待機時間の長さを決定します。デフォルトの待機時間は5秒です。

MAX_THREAD_WAIT

整数

キューに入っているモデル構築プロセスのタイムアウト間隔(単位は秒)。タイムアウトが発生すると、構築プロセスは、プロセス・ロック待機タイムアウト間隔を超えたことを示すエラー・メッセージとともに終了します。値がNULLの場合、タイムアウトは発生しません。デフォルトはNULLです

MAX_STRING_SIZE VARCHAR2、NVARCHAR2 Oracle Data Minerによって生成された表内のデータ型VARCHAR2およびNVARCHAR2の最大サイズを制御します。このプロパティは、MAX_STRING_SIZEデータベース・プロパティの値から初期化されます。

注意:

MAX_STRING_SIZEデータベース・プロパティを変更した場合は、値が一致するようにODMR$REPOSITORY_PROPERTIESのMAX_STRING_SIZEプロパティを更新する必要があります。値が同期していない場合、ODMrランタイム・エラーが発生することがあります。

WORKFLOW_JOB_CLASS

Varchar

ワークフロー用のOracle Schedulerジョブ・クラス。デフォルトは、DEFAULT_JOB_CLASSです。

POLLING_IDLE_RATE NUMBER 明らかに実行中と検出されるワークフローがない場合に、Oracle Data Minerクライアントがデータベースをポーリングするレートです。デフォルトは 30000ミリ秒(内部デフォルト)です。リポジトリ・プロパティ表の実際の値は0です。管理者が値をゼロ以外の値に変更した場合、それがアクティブな設定になります。
POLLING_ACTIVE_RATE NUMBER

実行中と検出されるワークフローがある場合に、Oracle Data Minerクライアントがデータベースをポーリングするレートです。デフォルトは 1500ミリ秒(内部デフォルト)です。リポジトリ・プロパティ設定の実際のデフォルトは0です。ゼロ以外の値に変更した場合、それがアクティブな設定になります。
POLLING_COMPLETED_WINDOW NUMBER 完了したワークフローをポーリング問合せ結果に含めるための時間です。リポジトリのデフォルトは0です。クライアント・レベルのデフォルトは24.です。ゼロ以外の値に変更された場合、この設定が、ユーザーが利用できるクライアント・レベルのプリファレンス設定より優先されます。
PURGE_WORKFLOW_SCHEDULER_OBJS VARCHAR2 実行中のワークフローによって生成された古いOracle Schedulerオブジェクトをパージします。
  • TRUE (デフォルト)。Oracle Schedulerオブジェクトを自動的にパージします。

  • FALSE。Oracle Schedulerオブジェクトをパージしません。ワークフローが検出された場合、Oracle Schedulerオブジェクトはパージされます。

    ワークフローの問題に優先順位を付ける必要がある場合は、FALSEオプションを使用することをお薦めします。優先順位を付け終わった後は、TRUEに設定する必要があります。

PURGE_WORKFLOW_EVENT_LOG NUMBER イベント・ログに保持される各ワークフローのワークフロー実行数を制御します。この制限内に収まるように、古いワークフローのイベントはパージされます。デフォルトは2です。

注意:

0を指定した場合、Oracle Data Minerはワークフロー・イベントをパージしません。イベント・ログのサイズが上昇し、問合せのパフォーマンスに影響を与えるため、これはお薦めしません。