日本語PDF

ORACLE_AFFINITY

64 CPUを超えるシステムの複数のプロセッサ・グループでクラス・スレッドのスケジューリングを有効化します。

このパラメータは手動で追加する必要があります。このパラメータを変更する場合は、Oracleサポート・サービスに連絡することをお薦めします。形式は次のとおりです。

namen:[[processorgroup0][processorgroup1][..2][..3],]{cpumask0[ cpumask1 cpumask2 cpumask3] | ALL};
name1:[[0][1][2][3],]{cpumask0[ cpumask1 cpumask2 cpumask3] | ALL};
name2:[[0][1][2][3],]{cpumask0[ cpumask1 cpumask2 cpumask3] | ALL};

ここで、processorgroupはWindows CPUグループを指定するオプションのパラメータです。64以上の論理CPUを含むシステムでは、Windowsはすべての使用可能なCPUを4つのグループ(0、1、2、3)に分割し、それぞれのグループに64を超える論理CPUが含まれないようにします。デフォルトでは、プロセスは単一のプロセッサ・グループを利用します。processorgroupパラメータにより、Oracleは64を超える論理CPUを使用できます。有効なプロセッサ・グループを決定するには特定のハードウェア構成を参照してください。

注意:

64論理コア未満のシステムの複数のプロセッサ・グループでORACLE_AFFINITYパラメータを使用しないでください。本番サーバーで、64論理CPU未満のシステムには、1つのプロセッサ・グループのみ使用できます。

namenは、バックグラウンド・スレッドの名前に設定する必要があります。非バックグラウンド(シャドウ)・スレッドにはUSERを、特に処理のない他のスレッド・タイプにはDEFを指定します。有効なバックグラウンド・スレッド名には、DBW0LGWRPMONSMONARCHRECOCKPTTRWRJ000からJ999P000からP481、およびv$bgprocessデータ・ディクショナリ・ビューのNAME列にあるその他の名前があります。

cpumaskはOracle Databaseプロセスのアフィニティ・マスクを設定します。各アフィニティ設定は、対応するスレッド名の有効なアフィニティ・マスクまたはこれに相当する数値である必要があります。プロセスのアフィニティ・マスクは、Oracle Servicesを最初に起動したときにのみ使用されます。各スレッドのアフィニティは、個々のスレッドが起動するとき(たとえば、バックグラウンド・スレッドの場合にはデータベースの起動時)のみ設定されます。

たとえば、160論理CPUを含むシステムで複数のプロセッサ・グループを使用するには、HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_HOMENAMEORACLE_AFFINITYレジストリ・キーは次のように定義できます。

次の例は、HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_HOMENAMEORACLE_AFFINITYレジストリ・キーを設定して、160個の論理CPUを持つシステムで複数のプロセッサ・グループを使用する方法を示しています。次の例では、USERDEFはスレッド・クラス名、0,1,2,3はシステム内の有効なCPUグループ、および4294967295は対応するCPUグループの有効なアフィニティ・マスクであることを想定しています。

  • USER (フォアグラウンド)スレッドのアフィニティを、processorgroup1内のすべてのCPU、processorgroup2内のすべてのCPU、またはprocessorgroup3内のすべてのCPUに、それぞれの新しいフォアグラウンド・スレッドのプロセッサ・グループ間で交互に設定します。また、DEFクラス・スレッドのアフィニティをprocessorgroup0のCPU 0-31に設定します。

    USER:123,ALL;DEF:0,4294967295;
  • USERクラス・スレッドのアフィニティを、processorgroup0内のCPU 0-19、またはprocessorgroup2内のCPU 16-31に設定します。また、DEFクラス・スレッドのアフィニティを、processorgroup1内のCPU 0-19に設定します。

    USER:02,1048575 4294901760;DEF:1,1048575;
  • USERクラス・スレッドのアフィニティを、すべてのプロセッサ・グループのすべてのCPUに、それぞれの新しいフォアグラウンド・スレッドのプロセッサ・グループ間で交互に設定します。DEFクラス・スレッドのアフィニティを、すべてのプロセッサ・グループのCPU 0-31に、それぞれの新しいDEFクラス・スレッドのプロセッサ・グループ間で交互に設定します。

    USER:0123,ALL;DEF:0123,4294967295;
  • USERクラス・スレッドのアフィニティを、processorgroup0内のCPU 0-31processorgroup1内のCPU 0-19、およびprocessorgroup2内のCPU 0-19に、それぞれの新しいフォアグラウンド・スレッドのプロセッサ・グループ間で交互に設定します。

    USER:012,4294967295 1048575 1048575;