5.2.9 I/Oリソース管理の構成の確認

このチェックリストを使用して、I/Oリソース管理(IORM)が正しく構成されていることを確認します。

  • IORMを使用してデータベース内のI/Oリソースを管理する場合、次の基準が満たされていることを確認します。
    • リソース・プランが有効化されていること。
    • すべてのデータベース・インスタンスで同じリソース・プランが有効化されていること。
      • スケジューラ・ウィンドウを使用してOracle Database Resource Managerを有効化すると、すべてのデータベース・インスタンスで常に同じプランが有効化されます。
      • RESOURCE_MANAGER_PLANパラメータを使用してOracle Database Resource Managerを有効化する場合、sid='*'を使用してすべてのデータベース・インスタンスにパラメータを設定します。
    • リソース・プランのコンシューマ・グループごとに、リソース・プランにMGMT_P[1-8]ディレクティブが含まれていること。

    次の問合せを使用して、前述の基準が満たされているかどうかを確認できます。

    SELECT DECODE(count(*), 0, 'Intra-Instance IORM Plan Enabled', 
    'No Intra-Instance IORM Plan Enabled') status 
    FROM gv$instance 
    WHERE inst_id NOT IN 
      (SELECT inst_id FROM gv$rsrc_plan WHERE cpu_managed = 'ON');
    
  • IORMを使用して複数のデータベースのI/Oリソースを管理する場合、データベース間プランが適切に構成されているかどうかを確認します。
    CellCLI> LIST IORMPLAN DETAIL
    

    データベース間プランが構成されていない場合、CellCLIのALTER IORMPLANコマンドを使用してプランを構成します。各アクティブ・データベースは、dbPlanパラメータに独自のディレクティブを保持している必要があります。

  • セッションが正しいコンシューマ・グループにマップされているかどうかを確認します。

    ワークロードの実行中に、次の問合せを実行します。

    SELECT r.sid,
           c.consumer_group current_consumer_group
      FROM v$rsrc_session_info r, dba_rsrc_consumer_groups c 
      WHERE r.current_consumer_group_id = c.consumer_group_id
    UNION
    SELECT sid, 'OTHER_GROUPS' from v$rsrc_session_info 
      WHERE current_consumer_group_id = 0;
    

    次の構成エラーが原因で、セッションが適切なコンシューマ・グループに存在していないことがあります。

    • 権限の不足: セッションをいずれかのコンシューマ・グループに切り替えるには、そのコンシューマ・グループに切り替える権限がユーザーまたはロールに付与されている必要があります。次の問合せにより、すべてのコンシューマ・グループの権限が表示されます。

      SELECT grantee, granted_group 
      FROM DBA_RSRC_CONSUMER_GROUP_PRIVS
      ORDER BY granted_group;
      

      次のコマンドを使用して、任意のセッションをコンシューマ・グループに切り替える権限を付与します。この例は、BATCH_GROUPに権限を付与する方法を示しています。

      EXEC dbms_resource_manager_privs.grant_switch_consumer_group -
        ('public', 'BATCH_GROUP', FALSE);
      
    • アクティブではないコンシューマ・グループ: 現在のリソース・プランに含まれていないコンシューマ・グループにセッションがマップされるか、手動で切り替えられると、そのセッションはデフォルトのコンシューマ・グループであるOTHER_GROUPSに切り替えられます。

      セッションがマッピング・ルールを使用してコンシューマ・グループに割り当てられている場合、次の問合せを使用して、マッピング・ルールにより選択されたコンシューマ・グループ、使用されたマッピング属性、およびセッション開始時の本来のコンシューマ・グループを確認できます。

      SELECT r.sid,
             r.mapped_consumer_group,
             r.mapping_attribute, 
             c.consumer_group original_consumer_group
      FROM v$rsrc_session_info r, dba_rsrc_consumer_groups c 
      WHERE r.orig_consumer_group_id = c.consumer_group_id;
      

      マップ済のコンシューマ・グループが元のコンシューマ・グループと異なる場合、マップ済のコンシューマ・グループはリソース・プランに含まれていなかったことになります。

  • CellCLIを使用して、すべてのデータベースの各コンシューマ・グループで発行された大小のI/Oリクエストの数を表示します。
    CellCLI> LIST METRICCURRENT CG_IO_RQ_LG, CG_IO_RQ_SM   ATTRIBUTES name, -
             metricObjectName, metricValue, collectionTime;
    

    アクティブなI/Oワークロードを保持する各コンシューマ・グループは、これらのメトリックのとおりに大小のI/Oリクエストを生成しています。

  • ワークロードの実行中に、I/O負荷が正しいコンシューマ・グループで管理されているかどうかを確認します。

    次のCellCLIコマンドでは、すべてのデータベースの各コンシューマ・グループで発行された大小のI/Oリクエストの数が表示されます。

    CellCLI> LIST METRICCURRENT CG_IO_RQ_LG, CG_IO_RQ_SM   ATTRIBUTES name, -
             metricObjectName, metricValue, collectionTime;
    
  • ワークロードを実行中は、各カテゴリ、データベース、およびコンシューマ・グループの実際のI/O使用率を問合せます。

    次のCellCLIコマンドは、Oracle Exadata Storage Serverで実行中の各データベースの大小I/O使用率のリストです。

    CellCLI> LIST METRICCURRENT DB_IO_UTIL_LG, DB_IO_UTIL_SM ATTRIBUTES name, -
             metricObjectName, metricValue, collectionTime;
    

    出力はデータベースからの大小のリクエストによって使用されるディスク・リソースのパーセントを示したものです。

関連トピック