CPU増設時のCPU_COUNTの変化

この記事ではCPU増設時のCPU_COUNTの変化について解説します。

 CPU_COUNTの値の変化

DBの性能アップのためCPU数を増やすことがあるかと思います。

Oracle DatabaseではDBサーバのCPUを増やすとともに、初期化パラメータのCPU_COUNTの値を変更する必要があります。

CPU_COUNTはデフォルトでは0に設定されています。

この場合は実際のサーバのCPU数に合わせて自動的に値が設定されます。

明示的にCPU_COUNTが設定されている場合は手動でCPU_COUNTを設定する必要があります。

Oracleのアプライアンス製品などではCPU_COUNTが自動的に明示的に設定される場合があるため注意が必要です。


 CPU_CONUTの変化例

実際にCPU数を1→2に増加させてCPU_COUNTの値を確認します。

CPU増設前の状態はCPU_COUNTの値を1に明示的に設定しています。

この場合CPU_COUNTを確認すると当然値は1になります。

SQL> show parameter cpu_count
NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
cpu_count			     string	 1

明示的に設定しているためpfileを作成するとcpu_countが記載されています。

この状態でDBサーバを落とし、CPU数を2に変更します。

DBサーバを起動し、cpu_countを確認するとcpu_countを確認すると値は1のままです。

SQL> show parameter cpu_count
NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
cpu_count			     string	 1

ここでcpu_countの値をリセットします。

SQL> ALTER SYSTEM RESET cpu_count SCOPE=BOTH;
システムが変更されました。

cpu_countを確認すると値は0になります。

SQL> show parameter cpu_count
NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
cpu_count			     string	 0

またpfileを作成するとcpu_countの記載は消えています。

ここでDBを再起動し、cpu_countの値を再度確認すると値は2へ変化します。

SQL> show parameter cpu_count
NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
cpu_count			     string	 2

ここでpfileを作成し中身を確認してもcpu_countの記載はありません。

cpu_countはデフォルトの0が設定されていますが、show parameterで確認すると実際の値の2が確認できる仕様のようです。

そのためcpu_countがデフォルトの0であるかどうかはpfileに出力して、cpu_countの記載のあるなしで判断するのがよさそうです。