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を指定します。有効なバックグラウンド・スレッド名には、DBW0、LGWR、PMON、SMON、ARCH、RECO、CKPT、TRWR、J000からJ999、P000からP481、およびv$bgprocessデータ・ディクショナリ・ビューのNAME列にあるその他の名前があります。
cpumaskはOracle Databaseプロセスのアフィニティ・マスクを設定します。各アフィニティ設定は、対応するスレッド名の有効なアフィニティ・マスクまたはこれに相当する数値である必要があります。プロセスのアフィニティ・マスクは、Oracle Servicesを最初に起動したときにのみ使用されます。各スレッドのアフィニティは、個々のスレッドが起動するとき(たとえば、バックグラウンド・スレッドの場合にはデータベースの起動時)のみ設定されます。
たとえば、160論理CPUを含むシステムで複数のプロセッサ・グループを使用するには、HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_HOMENAMEのORACLE_AFFINITYレジストリ・キーは次のように定義できます。
次の例は、HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_HOMENAMEにORACLE_AFFINITYレジストリ・キーを設定して、160個の論理CPUを持つシステムで複数のプロセッサ・グループを使用する方法を示しています。次の例では、USERとDEFはスレッド・クラス名、0,1,2,3はシステム内の有効なCPUグループ、および4294967295は対応するCPUグループの有効なアフィニティ・マスクであることを想定しています。
-
USER(フォアグラウンド)スレッドのアフィニティを、processorgroup1内のすべてのCPU、processorgroup2内のすべてのCPU、またはprocessorgroup3内のすべてのCPUに、それぞれの新しいフォアグラウンド・スレッドのプロセッサ・グループ間で交互に設定します。また、DEFクラス・スレッドのアフィニティをprocessorgroup0のCPU0-31に設定します。USER:123,ALL;DEF:0,4294967295;
-
USERクラス・スレッドのアフィニティを、processorgroup0内のCPU0-19、またはprocessorgroup2内のCPU16-31に設定します。また、DEFクラス・スレッドのアフィニティを、processorgroup1内のCPU 0-19に設定します。USER:02,1048575 4294901760;DEF:1,1048575;
-
USERクラス・スレッドのアフィニティを、すべてのプロセッサ・グループのすべてのCPUに、それぞれの新しいフォアグラウンド・スレッドのプロセッサ・グループ間で交互に設定します。DEFクラス・スレッドのアフィニティを、すべてのプロセッサ・グループのCPU0-31に、それぞれの新しいDEFクラス・スレッドのプロセッサ・グループ間で交互に設定します。USER:0123,ALL;DEF:0123,4294967295;
-
USERクラス・スレッドのアフィニティを、processorgroup0内のCPU0-31、processorgroup1内のCPU0-19、およびprocessorgroup2内のCPU0-19に、それぞれの新しいフォアグラウンド・スレッドのプロセッサ・グループ間で交互に設定します。USER:012,4294967295 1048575 1048575;