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つのプロセッサ・グループのみ使用できます。
各name
n
は、バックグラウンド・スレッドの名前に設定する必要があります。非バックグラウンド(シャドウ)・スレッドには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;