Database Support Blog

  • Oracle Database
2016.05.17

【Oracle SE2】CPUスレッド数制限の動作検証結果~その3~

SE2 RAC環境の片ノードのインスタンスが停止したらCPUスレッド数制限はどうなる?

【Oracle SE2】CPUスレッド数制限の動作検証結果~その2~ では同一サーバ内に複数のデータベースを構築したケースで、どのようにスレッド数制限が行われるか確認をしました。SE2のスレッド数制限の最終回は「Real Application Clusters(以下、RAC)環境でどのように制御されるか」を検証しましたので、その結果を紹介します。

SE2 RAC環境の片ノードのインスタンスが停止したらCPUスレッド数制限はどうなる?

Oracle JapanのFAQ" Oracle Database Standard Edition 2で制限される「CPUスレッド」とは何ですか? "には、スレッド数制限はデータベース単位で行われ、各データベースごとに使用するCPUスレッドが16(RACの場合は8)までに制限されると記載されています。

今回はこの8CPUスレッド数の制限に着目します。片方のインスタンスが停止した場合に、起動しているノードの制限が16CPUスレッドに変わる/8CPUスレッドのまま、どちらになるのかを以下の環境を使って検証を行います。

IBM Power System
POWER8 3.72GHz E850 16Core(Hyper-Treading有効)
480GBメモリ
Storwize V3700 10Krpm 900GB SAS HDD * 12
AIX 7.1
Oracle Grid Infrastructure 12.1.0.2
Oracle Database 12.1.0.2 SE2(RAC環境)

【検証 1】両ノードのインスタンスが起動した状態で、
9セッションでCPUを使用する処理を実行すると?

まずはRAC環境の場合は8CPUスレッド数で制限されることを確認します。CPUを使用する処理を行うセッションを増やしていくと、両ノードとも8CPUスレッドの制限を超えたところで「resmgr:cpu quantum」の待機イベントが発生しました。これは期待したとおりの動作です。

gv$session(制限内:7セッションがCPUを使用)

▲gv$session(制限内:7セッションがCPUを使用)

gv$session(制限超え:9セッションがCPUを使用)

▲gv$session(制限超え:9セッションがCPUを使用)

【検証 2】片ノードのインスタンスを停止した状態で、
9セッションでCPUを使用する処理を実行すると?

ここからが本番です。片ノードのインスタンスを停止した状態で起動しているノードにCPUを使用するセッションを増やしていきます。8CPUスレッド、16CPUスレッドどちらの動作となるのでしょうか。

はじめに7セッション。当然制限はかかりません。

gv$session(片ノードが停止した状態で7セッションがCPUを使用)

▲gv$session(片ノードが停止した状態で7セッションがCPUを使用)

もう2セッション追加して合計9セッション。結果は…。

gv$session(片ノードが停止した状態で9セッションがCPUを使用)

▲gv$session(片ノードが停止した状態で9セッションがCPUを使用)

うーん。実は16CPUスレッドに変わってくれることを期待していたのですが、制限は8CPUスレッドのままでした。

まとめ:縮退運転時のCPUスレッド数制限に注意

SE2のCPUスレッド制限は起動インスタンス数に関係なく、RAC環境であるかどうかがポイントのようです。制限が動的に変わらないところを見ると初期化パラメータの CLUSTER_DATABASE あたりを考慮しているのでしょうか。この記事を書いている時には検証環境を返却してしまっており、確認できませんでした。

RAC環境を構築する際には片ノードのインスタンスが意図せず停止した際、生存ノードに処理が集中してもサービスの提供が継続できるようにハードウェアリソースやデータベースの初期化パラメータなどを考慮します。SE2でRAC環境の利用を検討する場合には、シングルインスタンス以上にCPUスレッド数制限を意識する必要がありそうですね。

3回にわたってお送りした【Oracle SE2】CPUスレッド数制限の動作検証結果、いかがでしたでしょうか。ご利用環境の移行を検討するのにあたり、少しでもお役に立てば幸いです。

筆者情報

大野 高志

サービス事業部 サポートセンター

2007年にアシスト入社後、Oracle Databaseのサポート業務に従事。現在はサポートの傍ら、未解決のトラブルを一つでも多く減らせるよう、サポートセンターに蓄積されているノウハウを社内外に伝える活動を行っている。


■商標に関して
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。

関連している記事

  • Oracle Database
2022.01.14

Oracleのジョブ・チェーンを使用して複数処理を1つのジョブに登録する方法

Oracle Database のジョブ・チェーン機能を使用すると、OSのバッチファイルやジョブ管理ツールを利用せずジョブ結果に基づいて後続の複数処理を1つのジョブとして実行できます。SE/EEエディションを問わず標準機能として提供されているジョブ・チェーン機能についてご紹介します。

  • Oracle Database
  • Exadata
2021.12.23

Exadataをフル活用しよう!性能をさらに引き上げるチューニング方法(Smart Scan編)

本記事では、Oracle Exadata Database MachineにおけるSQLチューニングの手法をご紹介します。

  • Oracle Database
2021.12.22

今だから見直そうデータベースセキュリティ(後編) 

前編では、データベースセキュリティとは?を整理したうえで、データベースセキュリティ検討時に必要となる5つの観点をご紹介し、「1. データの保護」について解説しました。後編となる本記事では「2. アイデンティティとアクセスの管理」と「3. 発見的統制の実現」について解説します。

ページの先頭へ戻る