OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

プロダクト概要
デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

プロダクト概要
デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
    • アイコンOceanBase Cloud
アイコン

OceanBaseデータベース

SQL - V4.4.2

    OceanBase ロゴ

    AI時代を支える分散データベース

    日本 - 日本語
    International - English
    中国站 - 简体中文
    プロダクト
    OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
    会社概要
    OceanBaseについてトラストセンター法的情報お問い合わせ
    公式アカウント
    ConnpassXQiitaLumaGitHub

    © OceanBase 2026. All rights reserved

    クラウドサービス契約個人情報保護ポリシーセキュリティ
    お問い合わせ
    ドキュメントフィードバック
    1. ホーム
    2. OceanBaseデータベース
    3. SQL
    4. V4.4.2
    アイコンOceanBaseデータベース
    SQL - V 4.4.2
    データベース
    • OceanBaseデータベース
    • OceanBase Cloud
    SQL
    KV
    • V 4.4.2
    • V 4.3.5

    バックグラウンドタスクのリソース分離設定例

    最終更新日:2026-06-15 02:31:32  更新
    シェア
    このページの内容
    リソースリクエストタイプのグループ化
    リソース分離ポリシー
    バックグラウンドタスクのリソース分離の設定
    前提条件
    手順
    関連ドキュメント

    折りたたみ

    シェア

    現在のOceanBaseデータベースのカーネルには、フロントエンドタスクおよびバックグラウンドタスクを含む10数種類のリソース要求タイプがあります。そのほとんどのバックグラウンドタスクの優先度は特に高くないため、これらのバックグラウンドタスクのリソースに対してリソース分離を行い、デフォルトでリソース分離を有効にする必要があります。

    テナント内のリソース分離の設定では、バックグラウンドタスクのリソース分離を自由に設定する方法が複雑であるため、このセクションではリソース要求タイプをグループ化することで、バックグラウンドタスクのリソース分離に対する推奨設定方法を提供します。

    リソースリクエストタイプのグループ化

    現在のリソース分離の設定方法は複雑であるため、設定を簡素化するためにこれらのリソースリクエストタイプをグループ化できます。全体として、以下のリソースグループに分類できます:

    • Cログ送信リソースグループ:CLOG_HIGH_GROUP
    • ダンプリソースグループ:COMPACTION_HIGH_GROUP
    • バックグラウンドタスクリソースグループ:BACKGROUND_GROUP

    上記の各リソースグループに含まれるリソースリクエストタイプは、次の表のとおりです。各リソースリクエストタイプ(バックグラウンドタスク)の詳細な説明については、リソース分離の概要を参照してください。

    リソースグループ
    含まれるリソース要求タイプ
    CLOG_HIGH_GROUP CLOG_HIGH
    COMPACTION_HIGH_GROUP COMPACTION_HIGH
    BACKGROUND_GROUP
    • COMPACTION_LOW
    • COMPACTION_MID
    • HA_LOW
    • HA_MID
    • HA_HIGH
    • DDL
    • DDL_HIGH
    • CLOG_LOW
    • CLOG_MID
    • OPT_STATS
    • GC_MACRO_BLOCK
    • IMPORT
    • SQL_AUDIT
    • MVIEW
    • REPLAY_HIGH

    リソース分離ポリシー

    グループ分けに基づき、これらのリソースグループに対してリソース分離ポリシーを計画できます。推奨されるリソース分離ポリシーは以下のとおりです。

    リソースグループ
    MIN_IOPS
    MAX_IOPS
    IOPS_WEIGHT
    MAX_CPU
    CPU_WEIGHT
    CLOG_HIGH_GROUP 40 100 100 100 30
    COMPACTION_HIGH_GROUP 30 100 50 100 70
    BACKGROUND_GROUP 10 100 30 100 70

    説明

    バックグラウンドタスク CLOG_HIGH は業務リクエストの遅延に直接影響するため、I/Oリクエストの要件は可能な限り満たす必要があります。そのため、リソースグループ CLOG_HIGH_GROUP の MIN_IOPS を40に設定します。同時に、このタスクのCPU要求は高くないため、CPU_WEIGHT を30に設定します。

    バックグラウンドタスクのリソース分離の設定

    前提条件

    1. CPUのリソース分離はcgroupに依存しているため、CPUのリソース分離を制御する必要がある場合は、バックグラウンドタスクのリソース分離を設定する前に、cgroupディレクトリを設定し、cgroup機能を有効にする必要があります。

      cgroupディレクトリの設定とcgroup機能の有効化に関する操作については、cgroupの設定を参照してください。

    2. (オプション)バックグラウンドタスクのリソース分離を設定する前に、ディスク性能のキャリブレーションを行い、テナントUnitのIOPSを設定できます。

      説明

      現在のバージョンでは、CPUおよびIOPSのリソース分離は、ディスク性能のキャリブレーション操作に強く依存しなくなりました。

      1. rootユーザーでクラスタのsysテナントにログインします。

      2. ディスク性能のキャリブレーションを実行します。

        1. 以下のコマンドを実行して、ディスクキャリブレーションタスクをトリガーします。

          obclient> ALTER SYSTEM RUN JOB "io_calibration";
          
        2. ステートメントの実行が成功した後、以下のコマンドを実行して、キャリブレーションの進捗状況を確認します。

          obclient> SELECT * FROM  oceanbase.GV$OB_IO_CALIBRATION_STATUS;
          
        3. キャリブレーションが完了して有効になるまでに1〜2分かかる場合があります。有効になったら、以下のコマンドを実行して、キャリブレーション値を確認します。

          obclient> SELECT * FROM  oceanbase.GV$OB_IO_BENCHMARK;
          
      3. テナントUnitのIOPSを設定します。前の手順で取得したOBServerノード上のディスクキャリブレーション値に基づき、16KB読み取りのディスクキャリブレーション値をそのノードのIOPS設定の上限値として使用します。

        テナントUnitのIOPSの詳細な設定と説明については、テナント内のリソース分離の設定のテナントのMAX_IOPSとMIN_IOPSを有効な値に設定するの内容を参照してください。

    手順

    1. ユーザーテナントのテナント管理者がクラスタのMySQLテナントまたはOracleテナントにログインします。

    2. 以下のSQLを実行して、バックグラウンドタスクのリソース分離を設定します。

      /*プランの作成*/
      CALL DBMS_RESOURCE_MANAGER.CREATE_PLAN('GLOBAL_PLAN','plan for global');
      
      /*リソースグループ COMPACTION_HIGH_GROUP の作成*/
      CALL DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP( CONSUMER_GROUP => 'COMPACTION_HIGH_GROUP', COMMENT => 'COMPACTION_HIGH_GROUP');
      CALL DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE( PLAN => 'GLOBAL_PLAN', GROUP_OR_SUBPLAN => 'COMPACTION_HIGH_GROUP' , COMMENT => 'COMPACTION_HIGH_GROUP', MAX_IOPS => 100, MIN_IOPS => 30, WEIGHT_IOPS => 50,UTILIZATION_LIMIT => 100, MGMT_P1 => 70);
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'COMPACTION_HIGH', 'COMPACTION_HIGH_GROUP');
      
      /*リソースグループ CLOG_HIGH_GROUP の作成*/
      CALL DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP( CONSUMER_GROUP => 'CLOG_HIGH_GROUP', COMMENT => 'CLOG_HIGH_GROUP');
      CALL DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE( PLAN => 'GLOBAL_PLAN', GROUP_OR_SUBPLAN => 'CLOG_HIGH_GROUP' , COMMENT => 'CLOG_HIGH_GROUP', MAX_IOPS => 100, MIN_IOPS => 40, WEIGHT_IOPS => 100, UTILIZATION_LIMIT => 100, MGMT_P1 => 30);
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'CLOG_HIGH', 'CLOG_HIGH_GROUP');
      
      /*リソースグループ BACKGROUND_GROUP の作成*/
      CALL DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP( CONSUMER_GROUP => 'BACKGROUND_GROUP', COMMENT => 'BACKGROUND_GROUP');
      CALL DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE( PLAN => 'GLOBAL_PLAN', GROUP_OR_SUBPLAN => 'BACKGROUND_GROUP' , COMMENT => 'BACKGROUND_GROUP', MAX_IOPS => 100, MIN_IOPS => 10, WEIGHT_IOPS => 30, UTILIZATION_LIMIT => 100, MGMT_P1 => 70);
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'COMPACTION_LOW', 'BACKGROUND_GROUP');
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'COMPACTION_MID', 'BACKGROUND_GROUP');
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'HA_LOW', 'BACKGROUND_GROUP');
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'HA_MID', 'BACKGROUND_GROUP');
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'HA_HIGH', 'BACKGROUND_GROUP');
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'DDL', 'BACKGROUND_GROUP');
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'DDL_HIGH', 'BACKGROUND_GROUP');
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'CLOG_LOW', 'BACKGROUND_GROUP');
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'CLOG_MID', 'BACKGROUND_GROUP');
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'OPT_STATS', 'BACKGROUND_GROUP');
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'GC_MACRO_BLOCK', 'BACKGROUND_GROUP');
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'IMPORT', 'BACKGROUND_GROUP');
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'SQL_AUDIT', 'BACKGROUND_GROUP');
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'MVIEW', 'BACKGROUND_GROUP');
      CALL DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING('FUNCTION', 'REPLAY_HIGH', 'BACKGROUND_GROUP');
      
      /*プランの有効化*/
      SET GLOBAL resource_manager_plan = 'GLOBAL_PLAN';
      

    関連ドキュメント

    このセクションでは、バックグラウンドタスクのリソース分離に関する推奨設定方法のみを提供します。テナント内のその他のタイプの分離設定については、以下のドキュメントを参照して設定してください:

    • テナント内のリソース分離の設定(MySQLモード)

    • テナント内のリソース分離の設定(Oracleモード)

    前のトピック

    cgroup設定のクリア
    最後

    次のトピック

    テナントとリソース情報の確認
    次
    このページの内容
    リソースリクエストタイプのグループ化
    リソース分離ポリシー
    バックグラウンドタスクのリソース分離の設定
    前提条件
    手順
    関連ドキュメント