SE2のCPUスレッド制限は、起動インスタンス数には関係なく「Oracle RAC環境であるかどうか」で判断されているようです。制限が動的に変わらないところを見ると、初期化パラメーターの「CLUSTER_DATABASE」などを参照していると推定されます。
ちなみにOracle RAC環境を構築する際には、片ノードのインスタンスが意図せずに停止し、生存ノードに処理が集中したとしてもサービスを継続できるように、ハードウェアリソースやデータベースの初期化パラメーターを考慮しておく必要があります。SE2でOracle RAC環境を構築する場合には、シングルインスタンス以上にCPUスレッド数制限を意識しておかなければならないでしょう。
SE2における疑問への回答は以下の通りです。
「Resource Manager」で制御している。
17以上のセッションでも接続可能。ただし、「同時に使われるCPUスレッドが16 CPUスレッドで収まる」ようにResource Managerで待機させながら処理が行われる。
バックグラウンドプロセスは異なるコンシューマグループに所属しており、CPUスレッド数の制限は受けない。
CPUスレッド数の上限は、「データベース単位」で数えられる。仮にどれかが制限を超えていたとしても、他のデータベースには制限の影響は及ばない。
RACで構成したシステムにおいては、仮に生存ノードが1つになったとしてもCPUスレッドの上限数は「8」のまま変わらない。
以上、3回にわたってSE2におけるCPUスレッド数制限の動作検証をお届けしました。利用している環境をOracle Database 12cおよびSE2へ移行する工程で少しでもお役に立てば幸いです。
株式会社アシスト サービス事業部 サポートセンター所属。2007年にアシスト入社後、Oracle Databaseのサポート業務に従事。現在はサポート業務の傍ら、未解決のトラブルを1つでも多く減らせるよう、サポートセンターに蓄積されている調査のノウハウを社内外に伝える活動を行っている。
Copyright © ITmedia, Inc. All Rights Reserved.